在TSQL中,我可以说:
insert into myTable (ID) values (5)
GO
select * from myTable
在MySQL中,我无法编写相同的查询。
在MySQL中编写此查询的正确方法是什么?
答案 0 :(得分:39)
行尾的分号。
INSERT INTO myTable (ID) values (5);
答案 1 :(得分:13)
分号是默认分隔符。 但是,您可以使用DELIMITER关键字将其重新定义为您想要的任何内容。从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)
当然,这不仅限于存储过程定义。
答案 2 :(得分:9)
只是一个简单的;
所以试试
insert into myTable(ID) values (5);
select * from myTable;
答案 3 :(得分:7)
我认为问题是GO是批量终止符,而不是语句终止符。显式设置事务后,我得到了这段代码,而没有告诉我程序已经存在。如果没有事务语句,我会收到程序已经存在的错误。
开始交易; drop procedure如果存在usp_test; 承诺; 开始交易; 创建程序usp_test()SELECT *来自书籍; 承诺; 叫usp_test();
答案 4 :(得分:4)
使用分号(;
)。它将把你的陈述分开。