Das hinzufügen einer zusätzlichen Spalte Wert mit INSERT ... SELECT in MySQL
Ich habe zwei Tabellen, und mein Ziel ist es, sich zu bewegen, die spezifische Daten aus der ersten Tabelle in die zweite Tabelle zusammen mit ein Grund dafür, warum die Daten wurden verschoben. Zum Beispiel:
raw_data_table
SELECT * FROM raw_data_table where id IS NULL;
Ich würde mir wünschen, verschieben Sie diese in die zweite Tabelle, die identisch ist mit der ersten Tabelle, mit Ausnahme einer zusätzlichen Spalte reason
. Ich habe versucht:
INSERT INTO bad_data_table
(SELECT * FROM raw_data_table WHERE id IS NULL), "The ID is NULL";
Aber das gibt einen syntax Fehler. Wie kann ich kopieren Sie die gesamte Zeile und fügen Sie der Grund Wert?
InformationsquelleAutor Anthony | 2011-04-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
*
in der Spalte Namen. Ansonsten, wenn jemand ads eine neue Spalte in derReason
Tabelle Dingen beginnen, die Luft zu sprengen.dies funktioniert nicht mit prepared statements
InformationsquelleAutor Cade Roux
Einfach den Grund, Spalte Standardwert wie "Die ID ist NULL", wenn alle Daten in dieser Tabelle ist, werden null-id.
ODER
Ausführen einer anderen Abfrage auf die neue Tabelle nach dem verschieben der Zeilen:
InformationsquelleAutor Jake
Versuchen, diese Abfrage:
Die Unterabfrage hier muss 1 Zeile!
#1241 - Operand should contain 1 column(s)
InformationsquelleAutor Khez