我有一张带有 slug 字段的桌子。是否可以通过操作另一个字段来使用函数自动填充该字段?
就像是:
INSERT INTO people('name','slug') VALUES ('xxxx',SLUG(name));
我有一张带有 slug 字段的桌子。是否可以通过操作另一个字段来使用函数自动填充该字段?
就像是:
INSERT INTO people('name','slug') VALUES ('xxxx',SLUG(name));
你在寻找这样的东西吗?
CREATE TABLE people
(`name` varchar(128), `slug` varchar(128));
-- It's not a real function it's just an oversimplified example
-- you need to implement your own logic
CREATE FUNCTION NAME_SLUG(name VARCHAR(128))
RETURNS VARCHAR(128)
RETURN LOWER(REPLACE(name, ' ', '-'));
CREATE TRIGGER tg_people_insert
BEFORE INSERT ON people
FOR EACH ROW
SET NEW.slug = NAME_SLUG(NEW.name);
INSERT INTO people (`name`)
VALUES ('Jhon Doe'),('Ian Martin Louis'), ('Mark Lee');
SELECT * FROM people;
输出:
| 姓名 | 蛞蝓 | -------------------------------------- | 约翰·多伊 | 约翰多伊| | 伊恩·马丁·路易斯 | 伊恩-马丁-路易斯 | | 马克·李 | 马克-李 |
这是SQLFiddle演示