是否可以将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;
我们想要添加'editor'列来获取当前的mysql用户并将其插入那里并自动更新它,类似于TIMESTAMP数据类型的行为。可以这样做,如果是这样,我应该使用什么类型的数据类型(有这样的类型,或者我应该使用简单的varchar)和涉及什么样的语法?
答案 0 :(得分: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();