Offensichtlich ist das folgende falsch.Wählen Sie aus der gleichen Tabelle wie ein Einfügen oder Aktualisieren
INSERT INTO `aTable` (`A`,`B`) VALUES((SELECT MAX(`A`) FROM `aTable`)*2),'name');
ich den Wert:
SQL-Abfrage:
INSERT INTO `aTable` (`A`, `B`)
VALUES
(
(
SELECT MAX(`A`)
FROM `aTable`
) *2
, 'name'
)
MySQL sagte:
1093 - Sie nicht Zieltabelle 'aTable' for update in FROM-Klausel angeben
Also, ich versuche, eine Bitmap-Tabelle zu machen, jede Zeile entspricht einem Bit, und hat eine 'map' va lue.
Um in die Tabelle einzufügen, möchte ich nicht zwei Abfragen durchführen, ich möchte eine tun. Wie soll ich das machen?
Niemand kommentiert, aber da ich versuche, eine Bitmap zu machen, sollte es sein * 2 nicht^2, mein Fehler, bitte beachten Sie, warum die Kommentare sagen oft^2, war es ein Fehler in der Version, die die Kommentatoren lesen.
Nein, ich versuche, aus der gleichen Tabelle wie die Einfügung zu wählen, und MySQL mag das nicht .. Sory, ich hatte die Abfrage beim ersten Mal nicht korrekt eingegeben, aber die Auswahl war immer noch korrekt . –
hrm. Okay, hat mySQL benutzerdefinierte Funktionen? Sie können also eine Funktion erstellen, die das aktuelle "MAX (' A') "zurückgibt und in Ihrer Anweisung verwendet? – stephenbayer
Es tut (gespeicherte Prozeduren), aber ich bin mir nicht sicher, ob Sie das noch tun können. Einen Versuch wert –