Mysql。语法错误1064(42000)

Mysql。语法错误1064(42000),mysql,Mysql,你好!我不明白是什么问题? CREATE TABLE expenses( num INT, paydate DATE DEFAULT DATE(), receiver INT NOT NULL DEFAULT 1, value DEC(10,2) NOT NULL, PRIMARY KEY(num) ); 我有个问题: 错误1064(42000):您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 要在“()”附近使用的语法,receiver INT NO

你好!我不明白是什么问题?

CREATE TABLE expenses(
  num INT,
  paydate DATE DEFAULT DATE(),
  receiver INT NOT NULL DEFAULT 1,
  value DEC(10,2) NOT NULL,
  PRIMARY KEY(num)
);
我有个问题:

错误1064(42000):您的SQL语法有错误;检查 与右边的MySQL服务器版本相对应的手册 要在“()”附近使用的语法,receiver INT NOT NULL默认值为1,值为 第4行的DEC(10,2)不为NULL,主键(num))'


不幸的是,MySQL不允许只默认日期。您需要默认的
日期时间

CREATE TABLE expenses (
  num INT,
  paydate datetime DEFAULT now(),
  receiver INT NOT NULL DEFAULT 1,
  value DEC(10,2) NOT NULL,
  PRIMARY KEY (num)
);
是一个SQL FIDLE。

有关使用触发器的信息,请参见:如果使用MariaDB:“从MariaDB 10.2.1开始,您可以在默认情况下使用大多数函数”()。因此,以下操作将起作用:
paydate DEFAULT CURDATE()