Mysql 短跑时扳机
尝试创建一个触发器,该触发器将使用破折号拆分文档的文件名,然后将这两个条目插入到两个单独的字段中 例如,文件名可能是12345-67890,我需要12345进入1个字段,67890进入另一个字段-条目没有任何特定长度,所以它可能总是不同的,但我有这个想法,但它不起作用Mysql 短跑时扳机,mysql,triggers,Mysql,Triggers,尝试创建一个触发器,该触发器将使用破折号拆分文档的文件名,然后将这两个条目插入到两个单独的字段中 例如,文件名可能是12345-67890,我需要12345进入1个字段,67890进入另一个字段-条目没有任何特定长度,所以它可能总是不同的,但我有这个想法,但它不起作用 DELIMITER // CREATE TRIGGER triggername BEFORE INSERT ON triggername.tablename FOR EACH ROW BEG
DELIMITER //
CREATE TRIGGER triggername
BEFORE INSERT ON triggername.tablename
FOR EACH ROW
BEGIN
/* Move the value from one column to another */
SET NEW.DOCID = NEW.DOCID;
/* Check a text field with IF statement */
SPLIT_STR(filename, '-', 1) as ponum,
SPLIT_STR(filename, '-', 2) as invoicenum
END IF;
END;
//
我推荐的一个选项是使用函数,特别是函数,这将有所帮助 下面是一个简单的使用示例,您可以根据自己的解决方案进行调整:
。。。
设置“\u文件名”:=NEW.“文件名”、“\u分隔符”:='-';
如果(`common\u schema`.`get\u num\u tokens`(`u filename`、`u delimiter`)=2,那么
设置'ponum':='common\u schema`.'split\u token`(`u filename`、`u delimiter`,1);
设置`invoicenum`:=`common\u schema`.`split\u token`(`u filename`、`u delimiter`,2);
如果结束;
...