2017-09-24 188 views
0

您好!我不明白什麼是問題?Mysql。語法錯誤1064(42000)

CREATE TABLE expenses(
    num INT, 
    paydate DATE DEFAULT DATE(), 
    receiver INT NOT NULL DEFAULT 1, 
    value DEC(10,2) NOT NULL, 
    PRIMARY KEY(num) 
); 

我有一個問題:

ERROR 1064(42000):您有一個錯誤的SQL語法;檢查 手冊,該手冊對應於您的MySQL服務器版本右邊的 語法,以便在'(),接收器INT NOT NULL DEFAULT 1,值 DEC(10,2)NOT NULL,PRIMARY KEY(num))'附近使用4

+0

查看[this tread](https://stackoverflow.com/questions/20461030/current-date-curdate-not-working-as-default-date- value)使用觸發器 – SBF

+0

如果您使用MariaDB:「從MariaDB 10.2.1開始,您可以在DEFAULT中使用大多數函數「(https://mariadb.com/kb/en/library/create-table/)。所以下面的工作:'paydate DATE DEFAULT CURDATE()'。 –

回答

3

不幸的是,MySQL不會讓你默認只有日期。您需要默認情況下,datetime

CREATE TABLE expenses (
    num INT, 
    paydate datetime DEFAULT now(), 
    receiver INT NOT NULL DEFAULT 1, 
    value DEC(10,2) NOT NULL, 
    PRIMARY KEY (num) 
); 

Here是SQL小提琴。