Mysql。语法错误1064(42000)

问题描述:

您好!我不明白什么是问题?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()'。 –

不幸的是,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小提琴。