2013-04-06 3 views
0

Можно ли добавить пользователя mysql в базу данных в виде столбца?Добавление пользователя 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) и какой синтаксис задействован?

ответ

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(); 
+0

И если бы я хотел добавить этот столбец во время создания таблицы вместо того, чтобы изменить его после факта? – Tomkarho

+0

@TKAGriever Проверьте изменения. – hjpotter92

Смежные вопросы