[英]mysql error 1064 when changing structure of date from datetime to VARCHAR
[英]MySQL #1064 Error DATETIME
我正在制作一個基於 Web 的郵件系統,我必須使用以下代碼創建一個表:
CREATE TABLE 'messages'(
'ID' INT(250) NOT NULL AUTO_INCREMENT,
'To' VARCHAR(250) NOT NULL,
'CC' VARCHAR(250),
'BCC' VARCHAR(250),
'From' VARCHAR(250) NOT NULL,
'Subject' VARCHAR(250),
'Message' LONG BLOB NOT NULL,
'Date' DATETIME NOT NULL,
'MailboxID' INT(250) NOT NULL,
Primary Key ('ID'));
MySQL 說:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''messages'( 'ID' INT(250) NOT NULL AUTO_INCREMENT, 'To' VARCHAR(250) NOT NULL,' at line 1
可能是錯誤在DATETIME
?
去掉列標識符周圍的引號。 要么使用刻度線,要么根本不使用:
CREATE TABLE messages(
ID INT(250) NOT NULL AUTO_INCREMENT,
To VARCHAR(250) NOT NULL,
CC VARCHAR(250),
BCC VARCHAR(250),
From VARCHAR(250) NOT NULL,
Subject VARCHAR(250),
Message LONG BLOB NOT NULL,
Date DATETIME NOT NULL,
MailboxID INT(250) NOT NULL,
Primary Key (ID));
或者:
CREATE TABLE `messages`(
`ID` INT(250) NOT NULL AUTO_INCREMENT,
`To` VARCHAR(250) NOT NULL,
`CC` VARCHAR(250),
`BCC` VARCHAR(250),
`From` VARCHAR(250) NOT NULL,
`Subject` VARCHAR(250),
`Message` LONG BLOB NOT NULL,
`Date` DATETIME NOT NULL,
`MailboxID` INT(250) NOT NULL,
Primary Key (`ID`));
去掉表 scema 中所有字段名的單引號
語法應該是
create table table_name
(
col_name int(1)
......
.....
);
所以在你的情況下應該是
CREATE TABLE messages(
ID INT(250) NOT NULL AUTO_INCREMENT,
`To` VARCHAR(250) NOT NULL,
CC VARCHAR(250),
BCC VARCHAR(250),
`From` VARCHAR(250) NOT NULL,
Subject VARCHAR(250),
Message LONG BLOB NOT NULL,
Date DATETIME NOT NULL,
MailboxID INT(250) NOT NULL,
Primary Key ('ID'));
此外,您使用的是保留關鍵字 TO 和 FROM,因此您還需要對它們進行反引號
您可以查看有關datetime 的開發人員的 mysql 文檔。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.