Mysql: SELECT * FROM ... ohne ein Feld

9

Zum Duplizieren eines Eintrags möchte ich folgende Syntax verwenden:

%Vor%

Da die erste Spalte jedoch ein Autoinkrement-Primärschlüssel ist, muss dieser Wert unterschiedlich sein. Meine Problemumgehung bestand darin, alle Felder in der Auswahlabfrage anzugeben, anstatt das Sternchen zu verwenden und dann das Primärschlüsselfeld leer zu lassen. Da meine Tabelle mehr als dreißig Felder hat, die sich leider ständig ändern, suche ich nach einer Lösung, die ich in einem Skript implementieren kann und die nicht geändert werden muss, wenn sich die Tabellenstruktur ändert. Irgendwelche Ideen? Vielen Dank!

    
moabit21 21.12.2011, 13:25
quelle

2 Antworten

1

MySQL bietet keine Möglichkeit, solche Felder zu eliminieren. Wenn Sie jedoch wissen, dass Sie immer alle Felder außer dem Primärschlüssel möchten, ist der Aufwand für das Abrufen des Primärschlüssels gering. Es wird viel einfacher sein, den Primärschlüssel in Ihrem Code auszuschließen.

Wenn es wirklich wichtig ist, dies zu erhalten, könnten Sie DESCRIBE TABLE ausführen, um eine Liste von Spalten zu erhalten und dann Ihre Abfrage zu konstruieren. Dies dürfte jedoch die Dinge viel komplizierter machen. Ich würde empfehlen, nur den Primärschlüssel zu ignorieren.

    
Michael Mior 21.12.2011, 13:38
quelle
4

Beispiel:

%Vor%

Jetzt müssen Sie nur vorbereiten und ausführen ..

%Vor%

Es wurden keine Zeilen zurückgegeben, da keine Zeilen in die Tabelle eingefügt wurden.

Und jetzt einfügen und erneut ausführen ..

%Vor%

Geben Sie alle Tabellenfelder mit Ausnahme von 'ID' von @ sql

zurück     
user862010 21.12.2011 13:39
quelle

Tags und Links