Как установить триггер для копирования user_id в другую таблицу - PullRequest
1 голос
/ 16 марта 2019

Мне нужен триггер в phpmyadmin для 2 таблиц.

У меня есть две таблицы с именами users и group_has_users.Таблица group_has_users имеет 2 значения: group_id и user_id.

Я пытаюсь создать триггер, который автоматически вставляет новые данные в таблицу group_has_users с помощью user_id при создании нового пользователя вusers таблица (с group_id установленным на 1)

Как это сделать с триггером phpmyadmin?

insert into group_has_users (user_id) values (new.user_id);

У меня нет подсказки, чтобы установить group_id для установки 1.

Ответы [ 2 ]

0 голосов
/ 16 марта 2019

Каждый раз, когда в таблице users создается новая запись, вы хотите автоматически создать новую запись в group_has_users со значением по умолчанию group_id, равным 1.

Рассмотрим следующий триггер:

DELIMITER //
CREATE TRIGGER users_after_insert
AFTER INSERT ON users FOR EACH ROW
BEGIN
    INSERT INTO group_has_users(group_id, user_id) VALUES(1, NEW.user_id);
END;
//

Демонстрация на DB Fiddle :

DELIMITER //

CREATE TABLE users (user_id int)//   
CREATE TABLE group_has_users (group_id int, user_id int)//

CREATE TRIGGER users_after_insert
AFTER INSERT ON users FOR EACH ROW
BEGIN
    INSERT INTO group_has_users(group_id, user_id) VALUES(1, NEW.user_id);
END;
//

INSERT INTO users(user_id) values(1);

SELECT * FROM group_has_users;

| group_id | user_id |
| -------- | ------- |
| 1        | 1       |
0 голосов
/ 16 марта 2019

Я думаю, что это то, что вы хотите:

delimiter $$

create trigger after_insert_users
after insert on users 
for each row begin

if new.group_id = 1 then

insert into group_new_users (user_id) values (new.user_id);

end if;

end $$
delimiter ;

Обратите внимание, что вам придется запускать это в вашем Cli или MySQL Workbench

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...