5

这是mysql错误1293的消息:

SQL 错误 (1293):表定义不正确;在 DEFAULT 或 ON UPDATE 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列

mysql 的原因是什么,只允许每个表在 DEFAULT 或 ON UPDATE 子句中有一个 TIMESTAMP 列。

4

1 回答 1

9

只有一个 TIMESTAMP 字段可以默认为“现在”我首先应该说,如果您尝试使用 CURRENT_TIMESTAMP 或“默认现在”定义多个 MySQL TIMESTAMP 字段,不幸的是,这很糟糕,您不能在 MySQL 中这样做 尝试创建这样的表时,我刚刚收到此 MySQL TIMESTAMP 错误:

create table users (
    id int unsigned auto_increment not null primary key,
    username varchar(50) not null unique,
    password varchar(40) not null,
    email_address varchar(128) not null unique,
    email_sent timestamp not null,
    last_login timestamp not null default now()
    ) ENGINE = InnoDB;

当我第一次解决这个问题时,我认为 MySQL 需要在任何其他 TIMESTAMP 字段之前声明“CURRENT_TIMESTAMP (default now)”字段,所以我这样解决了我的问题:

create table users (
   id int unsigned auto_increment not null primary key,
   username varchar(50) not null unique,
   password varchar(40) not null,
   email_address varchar(128) not null unique,
   last_login timestamp not null default now(),
   email_sent timestamp not null
 ) ENGINE = InnoDB;
于 2012-11-02T09:59:51.330 回答