Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用mysql为表日志创建触发器?_Mysql_Sql - Fatal编程技术网

如何使用mysql为表日志创建触发器?

如何使用mysql为表日志创建触发器?,mysql,sql,Mysql,Sql,你能帮我写代码吗?因为我正在为我的项目创建一个日志表。所以我在表中包含了一个触发器,但是我的sql代码有一个错误。这是我的sql代码 CREATE TABLE `sales_category` ( `salescatid` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, `salescatname` VARCHAR(128) NOT NULL, `salescatdesc` VARCHAR(512) NOT NULL, U

你能帮我写代码吗?因为我正在为我的项目创建一个日志表。所以我在表中包含了一个触发器,但是我的sql代码有一个错误。这是我的sql代码

CREATE TABLE `sales_category` (
    `salescatid` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
    `salescatname` VARCHAR(128) NOT NULL,
    `salescatdesc` VARCHAR(512) NOT NULL,
    UNIQUE INDEX `salescatname` (`salescatname`),
    UNIQUE INDEX `salescatid` (`salescatid`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB


CREATE TABLE `category_log` (
    `action` ENUM('CREATE','UPDATE','DELETE') NULL DEFAULT NULL,
    `id` INT(10) UNSIGNED NOT NULL,
    `salescatname` VARCHAR(255) NOT NULL,
    `salescatdesc` VARCHAR(255) NOT NULL,
    INDEX `id` (`id`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB;


//Here's the error: SQL error 1054: Unknown column 'id' in 'NEW'
DELIMITER #
CREATE TRIGGER ai_category
AFTER INSERT ON sales_category
FOR EACH ROW
BEGIN
    INSERT INTO category_log(action,id,salescatname,salescatedesc)
    VALUES('CREATE',NEW.id,NEW.salescatname,NEW.salescatdesc);
END;#

请帮我做这个谢谢。我无法发现我的代码哪里出错了。

好的,我找到了错误。我只是将category_log中的字段重命名为same as my sales_category表