Insert Records To MySQL 时,出现错误代码 1054

While Insert Records To MySQL, get in Error Code 1054

我是 MySQL 的新手,我尝试在 mysql table 中输入记录。我收到以下错误

INSERT INTO advertising.discountauthorizationrequst SET DARDateTime=cast('2003-01-13 16:50:32' as datetime), `DARPubCode`=trim('DD'), `DARPubDate`=cast('2022-05-08' as date), `DARAutUser`=trim("U0001"), `DARDeviceID`=trim('123456789ABCDEFGHIJKL987456'), `DARMessage`=trim("This Is Test Message"), `DARGranted`=("0"), `DARUser`=trim("DATAENTRYUSERNAME") Error Code: 1054. Unknown column 'DARDateTime' in 'field list'

我在下面列出了我的 INSERT 语句。有人请帮我解决这个问题。我正在使用 mysql workbench 8.0.

列:

    DARDateTime datetime PK 
    DARPubCode varchar(3) PK 
    DARPubDate date PK 
    DARAutUser varchar(5) 
    DARDeviceID varchar(50) 
    DARMessage varchar(100) 
    DARGranted varchar(1) 
    DARUser varchar(50) PK

这是脚本

    INSERT INTO `advertising`.`discountauthorizationrequst` 
    SET 
       `DARDateTime`=cast('2003-01-13 16:50:32' as datetime), 
       `DARPubCode`=trim('DD'), 
       `DARPubDate`=cast('2022-05-08' as date), 
       `DARAutUser`=trim("U0001"),
       `DARDeviceID`=trim('123456789ABCDEFGHIJKL987456'), 
       `DARMessage`=trim("This Is Test Message"), 
       `DARGranted`=("0"), 
       `DARUser`=trim("DATAENTRYUSERNAME");

已编辑.. Table 督察员 - DDL

    CREATE TABLE `discountauthorizationrequst` (
  `DARDateTime` datetime NOT NULL,
  `DARPubCode` varchar(3) NOT NULL,
  `DARPubDate` date NOT NULL,
  `DARAutUser` varchar(5) DEFAULT NULL,
  `DARDeviceID` varchar(50) DEFAULT NULL,
  `DARMessage` varchar(100) DEFAULT NULL,
  `DARGranted` varchar(1) DEFAULT NULL,
  `DARUser` varchar(50) NOT NULL,
  PRIMARY KEY (`DARDateTime`,`DARPubCode`,`DARPubDate`,`DARUser`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

您实际上混淆了 SQL 命令并想出了它们的混合体。最常用的 INSERT 命令有两种方式..

insert into SomeTable 
   ( these, columns ) 
   values 
   ( oneValue, anotherValue)

insert into SomeTable( these, columns )
   select oneColumn, secondColumn
      from SomeOtherTable
      where SomeCondition

UPDATE 命令基于您要更改的 EXISTING 记录

Update SomeTable set
      thisColumn = SomeValue,
      anotherColumn = SomeOtherValue
   where SomeCondition

所以,您似乎在做的事情应该写成

INSERT INTO advertising.discountauthorizationrequst
   (  DARDateTime,
      DARPubCode,
      DARPubDate,
      DARAutUser,
      DARDeviceID,
      DARMessage,
      DARGranted, 
      DARUser
   )
   values
   (
      cast('2003-01-13 16:50:32' as datetime), 
      'DD', 
      '2022-05-08', 
      'U0001', 
      '123456789ABCDEFGHIJKL987456', 
      'This Is Test Message', 
      '0', 
      'DATAENTRYUSERNAME'
   )

注意格式化的可读性,您可以看到需要的每一列后跟显式值(可以在稍后的代码中参数化)在相同的序号上下文中。因此,如果您需要向插入中添加新列,则可以轻松地在次要提供的值中使用相同的序号位置。

至于第 3 列,通过提供 YYYY-MM-DD 中的字符串,SQL 通常 auto-converts 到日期格式。其他字段,您不需要显式 TRIM() 一切。如果参数化,当你在开发中到达那个点时,你将传递修剪后的值。

感谢您的评论和回答,

我发现了我所做的错误。我为以上 table 创建了触发器。在我删除那些触发器后它的工作。

再次感谢。