mysql 存储过程,execute 报错
执行这条sql:
EXECUTE 'SELECT SYSDATE()'
报如下错误:
[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''SELECT SYSDATE()'' at line 1
数据库版本用的mysql 5.1
小弟愚昧,实在不知道错在哪里,EXECUTE ('SELECT SYSDATE()'),这样也是试过了,call 也试过了,一直报错。。。
------解决思路----------------------
SET @SQL='SELECT SYSDATE()'
prepare SQL from @SQL;
execute SQL;你试下
------解决思路----------------------
begin
DECLARE tableName VARCHAR(100) DEFAULT concat('OO_API_ACCESS_LOG_',year(SYSDATE()),month(SYSDATE()));
set @createSql = concat('CREATE TABLE ', tableName, '(ID int(18) NOT NULL AUTO_INCREMENT COMMENT \'主键ID\',
USER_ID int(18) DEFAULT NULL,
INVOKE_METHOD varchar(100) DEFAULT NULL COMMENT \'方法名称\',
METHOD_VER varchar(20) DEFAULT NULL COMMENT \'方法版本号\',
RESULT_TYPE int(18) DEFAULT NULL COMMENT \'返回值类型(1:正常、2:异常:3:参数错误)\',
RESULT_CODE varchar(50) DEFAULT NULL COMMENT \'返回错误编码\',
RESULT_MSG varchar(500) DEFAULT \'\' COMMENT \'Result_code对应的错误消息\',
DEVICE_MANUFACTURER varchar(50) DEFAULT NULL COMMENT \'设备厂商\',
DEVICE_MODEL varchar(50) DEFAULT NULL COMMENT \'设备型号\',
SYSTEM_VER varchar(50) DEFAULT NULL COMMENT \'系统版本号\',
APP_VER varchar(50) DEFAULT NULL COMMENT \'app版本号\',
VISIT_DATE datetime DEFAULT NULL COMMENT \'调用接口时间\',
IP varchar(40) DEFAULT NULL COMMENT \'调用接口的IP\',
INVOKE_PARAM varchar(4000) DEFAULT NULL COMMENT \'调用接口的参数\',
VISIT_TIME_COST int(18) DEFAULT NULL COMMENT \'接口响应时间\',
PRIMARY KEY (ID),
KEY INDEX_OO_API_ACCESS_LOG (VISIT_DATE,INVOKE_METHOD,USER_ID),
KEY INDEX_USER_ID (USER_ID) USING BTREE,
KEY INDEX_INVOKE_METHOD (INVOKE_METHOD) USING BTREE,
KEY INDEX_VISIT_DATE (VISIT_DATE) USING BTREE
) ENGINE=MyISAM DEFAULT CHARSET=utf8;');
PREPARE statm from @createSql;
EXECUTE statm;
end你试下
------解决思路----------------------
没MYSQL环境 没办法试。
我的印象中需要在前后都加上 delimiter // 这样的标识符。