在破折号上触发拆分

时间:2014-04-03 15:39:17

标签: mysql triggers

尝试创建一个触发器,使用短划线拆分文档的文件名,然后将这2个条目插入2个单独的字段

即。文件名可能是12345-67890,我需要12345进入1字段,67890进入另一个字段 - 条目没有任何特定的长度所以它可能总是不同但我有这个作为一个想法,但它不工作

    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;
    //

1 个答案:

答案 0 :(得分:0)

我建议的一个选项是使用common_schema,特别是get_num_tokens()split_token(),这会有所帮助。

这是一个简单的使用示例,您可以根据自己的解决方案进行调整:

...
SET `_filename` := NEW.`filename`, `_delimiter` := '-';
IF (`common_schema`.`get_num_tokens`(`_filename`, `_delimiter`) = 2) THEN
    SET `ponum` := `common_schema`.`split_token`(`_filename`, `_delimiter`, 1);
    SET `invoicenum` := `common_schema`.`split_token`(`_filename`, `_delimiter`, 2);
END IF;
...