错误 1054 'field-list' 中的未知列 'column name'
Error-1054 Unknown column 'column name' in 'field-list'
当我在插入 之前创建 的一个 触发器 以防止输入错误时,触发器已创建,但在插入值之后 table 然后它会在 'field-list' 中创建类似 Error-1054 Unknown column 'column-name' 的错误。我想创建触发器以防止用户输入错误,那么如何在创建触发器后在 table 中插入值。触发器代码如下所示
CREATE DEFINER=`root`@`localhost` TRIGGER `mobile_no` BEFORE INSERT ON `invoiceform_clients` FOR EACH ROW
BEGIN
if length(clientPhonenumber)=10 THEN
insert into invoiceform_clients(clientPhonenumber) values(clientPhonenumber);
ELSE
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT= 'Mobile NO. must be in 10 digit';
end if;
END;
您无需在触发器主体内重复插入语句 - 只需验证列值并在错误时抛出信号。如果触发器代码正常退出,触发触发器的原始 INSERT
也会成功。
您还应该测试 NEW.clientPhonenumber
而不仅仅是 clientPhonenumber
- 这指定您要检查记录 中的字段,因为它将存在于 [=11] 之后=]完成。
触发器应如下所示:
CREATE DEFINER=`root`@`localhost` TRIGGER `mobile_no`
BEFORE INSERT ON `invoiceform_clients`
FOR EACH ROW
BEGIN
IF length(NEW.clientPhonenumber) != 10 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT= 'Mobile NO. must be in 10 digit';
END IF;
END;
当我在插入 之前创建 的一个 触发器 以防止输入错误时,触发器已创建,但在插入值之后 table 然后它会在 'field-list' 中创建类似 Error-1054 Unknown column 'column-name' 的错误。我想创建触发器以防止用户输入错误,那么如何在创建触发器后在 table 中插入值。触发器代码如下所示
CREATE DEFINER=`root`@`localhost` TRIGGER `mobile_no` BEFORE INSERT ON `invoiceform_clients` FOR EACH ROW
BEGIN
if length(clientPhonenumber)=10 THEN
insert into invoiceform_clients(clientPhonenumber) values(clientPhonenumber);
ELSE
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT= 'Mobile NO. must be in 10 digit';
end if;
END;
您无需在触发器主体内重复插入语句 - 只需验证列值并在错误时抛出信号。如果触发器代码正常退出,触发触发器的原始 INSERT
也会成功。
您还应该测试 NEW.clientPhonenumber
而不仅仅是 clientPhonenumber
- 这指定您要检查记录 中的字段,因为它将存在于 [=11] 之后=]完成。
触发器应如下所示:
CREATE DEFINER=`root`@`localhost` TRIGGER `mobile_no`
BEFORE INSERT ON `invoiceform_clients`
FOR EACH ROW
BEGIN
IF length(NEW.clientPhonenumber) != 10 THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT= 'Mobile NO. must be in 10 digit';
END IF;
END;