我是 MySQL 新手,我嘗試在 mysql 表中輸入記錄。我收到以下錯誤
插入廣告.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") 錯誤代碼:1054。“欄位串列”中的未知列“DARDateTime”
我在下面列出了我的 INSERT 陳述句。有人請幫我解決這個問題。我正在使用 mysql 作業臺 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");
已編輯.. 表檢查器 - 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
uj5u.com熱心網友回復:
您實際上混淆了 SQL 命令并想出了它們的混合體。INSERT 命令最常以兩種方式完成。
insert into SomeTable
( these, columns )
values
( oneValue, anotherValue)
或者
insert into SomeTable( these, columns )
select oneColumn, secondColumn
from SomeOtherTable
where SomeCondition
UPDATE 命令基于您要更改的現有記錄
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 通常會自動轉換為日期格式。其他欄位,您不需要顯式 TRIM() 一切。如果引數化,當您到達開發的那個點時,您將傳遞修剪后的 VALUE。
uj5u.com熱心網友回復:
感謝您的評論和回答,
我發現了我所做的錯誤。我為上表創建了觸發器。在我洗掉這些觸發器后,它的作業。
再次感謝你。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/471302.html
標籤:mysql
下一篇:從另一個表更新一個表中的資料
