【问题标题】:Mysql. ERROR 1064(42000) in syntaxmysql。语法错误 1064(42000)
【发布时间】:2018-03-05 11:47:04
【问题描述】:

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

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 行

【问题讨论】:

  • 请参阅this tread 了解如何使用触发器
  • 如果您使用 MariaDB:“从 MariaDB 10.2.1 开始,您可以在 DEFAULT 中使用大多数功能”(mariadb.com/kb/en/library/create-table)。所以下面会起作用:paydate DATE DEFAULT CURDATE().

标签: mysql


【解决方案1】:

不幸的是,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 Fiddle。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多