In TSQL posso affermare:Qual è l'equivalente di "go" in MySQL?
insert into myTable (ID) values (5)
GO
select * from myTable
In MySQL non posso scrivere la stessa query.
Qual è il modo corretto di scrivere questa query in MySQL?
In TSQL posso affermare:Qual è l'equivalente di "go" in MySQL?
insert into myTable (ID) values (5)
GO
select * from myTable
In MySQL non posso scrivere la stessa query.
Qual è il modo corretto di scrivere questa query in MySQL?
Punto e virgola alla fine della riga.
INSERT INTO myTable (ID) values (5);
Semplicemente semplice;
quindi cercate
insert into myTable(ID) values (5);
select * from myTable;
Utilizzare un punto e virgola (;
). Separerà le tue dichiarazioni.
Il punto e virgola è il delimitatore predefinito. Puoi comunque ridefinirlo con qualsiasi cosa desideri con la parola chiave DELIMITER. Dal manuale MySQL:
mysql> delimiter //
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
-> BEGIN
-> SELECT COUNT(*) INTO param1 FROM t;
-> END;
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
mysql> CALL simpleproc(@a);
Query OK, 0 rows affected (0.00 sec)
Questo non è limitato alle definizioni di stored procedure, naturalmente.
Penso che il problema è che GO è un terminatore batch, non un terminatore di istruzioni. Dopo aver impostato esplicitamente le transazioni, ho ottenuto questo codice per l'esecuzione senza dirmi che la procedura esiste già. Senza le istruzioni di transazione, ottengo un errore che la procedura esiste già.
avviare la transazione; procedura di rilascio se esiste usp_test; commit; avvia la transazione; CREATE PROCEDURE usp_test() SELECT * dai libri; commit; chiama usp_test();
Non deve essere nemmeno alla fine della riga, solo alla fine della dichiarazione – soulmerge
ho creato un'istruzione di inserimento con ID = 0, quindi ho modificato il campo in incremento automatico. È stato aggiunto come ID = 1 .. – zeetit