【发布时间】:2016-06-19 06:29:11
【问题描述】:
如果摘要不存在,我正在尝试为每个博客条目自动生成摘要。 所以,我编写了这个触发器:
DELIMITER |
CREATE TRIGGER trigger_summary
BEFORE INSERT ON Blog
FOR EACH ROW
BEGIN
IF @summary IS NULL THEN
SET @summary=LPAD(@content, 149, '…');
END IF;
END|
触发器已正确创建。 但是当我插入一个没有摘要的新条目时……什么也没发生。 而且我不明白为什么,因为汇总值为空。 我制作的 INSERT 示例:
INSERT INTO Blog(title,summary,content,author) VALUES('Test', NULL, 'Lorem ipsum dolor sit amet, consectetur adipiscing elit……', 2);
我插入«NULL»。为什么我的 TRIGGER 不起作用?
如果以防万一,这是我的表结构:
CREATE TABLE `Blog` (
`id` int(10) UNSIGNED NOT NULL,
`title` varchar(200) NOT NULL DEFAULT '',
`summary` text,
`content` text NOT NULL,
`author` int(10) UNSIGNED NOT NULL DEFAULT '0',
`date` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我想要的很简单: 进行 INSERT 时: 如果摘要为 NULL,则取 «content» 的前 149 个字符并将它们用作摘要。 就是这样……
但是……为什么……它不起作用?
非常感谢您的帮助!
【问题讨论】: