错误 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;