簡體   English   中英

MySQL #1064 錯誤日期時間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM