Ответ 1
Точка с запятой в конце строки.
INSERT INTO myTable (ID) values (5);
В TSQL я могу указать:
insert into myTable (ID) values (5)
GO
select * from myTable
В MySQL я не могу написать тот же запрос.
Каков правильный способ написать этот запрос в MySQL?
Точка с запятой в конце строки.
INSERT INTO myTable (ID) values (5);
Точка с запятой является разделителем по умолчанию. Тем не менее, вы можете переопределить его по своему желанию с помощью ключевого слова 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)
Это, конечно, не ограничивается определениями хранимых процедур.
Просто прост;
попробуйте
insert into myTable(ID) values (5);
select * from myTable;
Я думаю, что проблема в том, что GO - это терминатор партии, а не терминатор термина. После явной установки транзакций я получил этот код, не сказав мне, что процедура уже существует. Без операторов транзакции я получаю сообщение об ошибке, что процедура уже существует.
начать транзакцию; drop, если существует usp_test; совершить; начать транзакцию; CREATE PROCEDURE usp_test() SELECT * из книг; совершить; вызовите usp_test();
Используйте точку с запятой (;
). Он отделит ваши заявления.