由于某种奇怪的原因,从存储过程插入不起作用。 这是林试图做:从存储过程插入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的给我一模一样的错误。 任何人都有线索?