【发布时间】:2021-06-16 03:05:55
【问题描述】:
我是 SQL 新手,并使用 phpmyadmin 上课。我试图在我的表中插入一个新行,以让我的触发器审计日志显示更改。但是,每次我尝试插入时,都会出现 1136 错误。我试图重写它,删除员工表,并用新员工重新填充它。每当我运行下面写的 INSERT 时,都会发生错误。有关导致此错误的原因的任何指导。
INSERT INTO `employee` (id, employee_fname, employee_lname, employee_gender)
VALUES (7, Jack, McQ, Male);
下面是我正在插入的当前表格。
CREATE TABLE `employee` (
`id` int(2) NOT NULL,
`employee_fname` varchar(25) NOT NULL,
`employee_lname` varchar(25) NOT NULL,
`employee_gender` varchar(25) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `employee` (`id`, `employee_fname`, `employee_lname`, `employee_gender`) VALUES
(1, 'Jane', 'Austin', 'Female'),
(2, 'Walt', 'Whitman', 'Male'),
(3, 'George', 'Martin', 'Male'),
(4, 'James', 'Brown', 'Male'),
(5, 'Mark', 'Sullivan', 'Male'),
(6, 'Mercedes', 'Lackey', 'Female');
--
-- Triggers `employee`
--
DELIMITER $$
CREATE TRIGGER `FOR INSERT` AFTER INSERT ON `employee` FOR EACH ROW INSERT INTO `emp_audit`
VALUES( 'The new ID=', NEW.id, NEW.employee_fname, NEW.employee_lname, NEW.employee_gender, 'was inserted on', NOW())
$$
DELIMITER ;
ALTER TABLE `employee`
ADD PRIMARY KEY (`id`);
COMMIT;
根据请求添加
CREATE TABLE `emp_audit` (
`id` int(2) NOT NULL,
`auditdata` varchar(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
ALTER TABLE `emp_audit`
ADD PRIMARY KEY (`id`);
COMMIT;
错误
INSERT INTO `employee` (`id`, `employee_fname`, `employee_lname`, `employee_gender`) VALUES ('7', 'Jack', 'McQ', 'Male')
MySQL said: Documentation
#1136 - Column count doesn't match value count at row 1
【问题讨论】:
-
您没有显示
emp_audit架构。我想知道问题是否存在...... -
添加,emp_audit
标签: sql phpmyadmin