由於某種奇怪的原因,從存儲過程插入不起作用。 這是林試圖做:從存儲過程插入Mysql會導致錯誤1064
DROP TABLE IF EXISTS test;
CREATE TABLE IF NOT EXISTS test(
id INT(9) NOT NULL AUTO_INCREMENT
,name VARCHAR(30) NOT NULL
,PRIMARY KEY (id)
)默認字符集= UTF8; 插入測試(名稱)值('A');
從命令行插入沒有問題。
然後創建一個存儲過程來完成同一種插入:
DROP PROCEDURE IF EXISTS storedtest;
DELIMITER $$
CREATE PROCEDURE storedtest()
BEGIN
declare insert_sql varchar(200);
SET insert_sql = 'insert into test (name) values(3)';
SELECT insert_sql;
PREPARE mystm FROM @insert_sql;
EXECUTE mystm;
END$$
DELIMITER ;
call storedtest();
這給我的錯誤: ERROR 1064(42000):你在你的SQL語法錯誤;請檢查與您的MariaDB服務器版本相對應的手冊,以便在第1行的'NULL'附近使用正確的語法。
NULL? NULL來自哪裏?
我也試圖改變的SQL插入看起來像這樣(不知道這是否是一個很好的方式):
SET insert_sql = "insert into test (name) values('3')";
但MySQL的給我一模一樣的錯誤。 任何人都有線索?