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 创建了触发器。在我删除那些触发器后它的工作。
再次感谢。
我是 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 创建了触发器。在我删除那些触发器后它的工作。
再次感谢。