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
答
不幸的是,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小提琴。
查看[this tread](https://stackoverflow.com/questions/20461030/current-date-curdate-not-working-as-default-date- value)使用触发器 – SBF
如果您使用MariaDB:“从MariaDB 10.2.1开始,您可以在DEFAULT中使用大多数函数“(https://mariadb.com/kb/en/library/create-table/)。所以下面的工作:'paydate DATE DEFAULT CURDATE()'。 –