0

是否可以将 mysql 用户作为列添加到数据库中?

假设我们有一个下表:

CREATE TABLE message(
   id INT AUTO_INCREMENT NOT NULL,
   title VARCHAR(255),
   message TEXT,
   last_edited TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
   PRIMARY KEY (id)
) ENGINE=INNODB;

并且我们想要添加“编辑器”列,它将获取当前的 mysql 用户并将其插入其中,并自动更新它,类似于 TIMESTAMP 数据类型的行为。可以这样做吗?如果可以,我应该使用哪种数据类型(是否有 USER 之类的类型,或者我应该使用简单的 varchar)以及涉及哪种语法?

4

1 回答 1

1
CREATE TABLE message(
   id INT AUTO_INCREMENT NOT NULL,
   title VARCHAR(255),
   message TEXT,
   last_edited TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
   editor VARCHAR(50) NOT NULL,
   PRIMARY KEY (id),
   UNIQUE INDEX `editor`(`editor`)
) ENGINE=INNODB;

并在插入时;采用

INSERT INTO `message`(`columns..`, `editor`)
    VALUES( <YOUR VALUES>, CURRENT_USER() )
ON DUPLICATE KEY UPDATE
    `editor` = CURRENT_USER();
于 2013-04-06T08:22:24.437 回答