使用默认值将变量类型声明为varchar

时间:2014-03-20 05:40:06

标签: mysql

我正在编写存储过程,这是我正在使用的代码

delimiter $$
CREATE TRIGGER le_trigger
AFTER INSERT ON inbox
FOR EACH ROW
BEGIN
declare last_inserted_number VARCHAR(100) DEFAULT '0800100200' NOT NULL;
declare last_inserted_message VARCHAR(100) DEFAULT 'Lorem Ipsum' NOT NULL;

set last_inserted_number = NEW.in_number;
set last_inserted_message = NEW.in_message;

insert into transactions (message,tel) values(last_inserted_message,last_inserted_number);
END$$
delimiter ; 

当我执行此操作时,我收到此错误

  

/ * SQL错误(1064):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   语法使用附近' NOT NULL DEFAULT' 0800100200&#39 ;;宣布   last_inserted_message VARCHAR(100)NOT N'在第5行 / / 受影响   rows:0找到的行:0警告:0 0的1个查询的持续时间:0.000   秒。 * /

问题似乎在于我宣布这个变量

declare last_inserted_number VARCHAR(100) DEFAULT '0800100200' NOT NULL;
    declare last_inserted_message VARCHAR(100) DEFAULT 'Lorem Ipsum' NOT NULL;

为什么在varchar设置好默认值时出现错误?

1 个答案:

答案 0 :(得分:1)

Stored procedure variables不能声明为NOT NULL。

删除“NOT NULL”。