Я создал две таблицы в MySQL, которые называются "BirthTable" и "deathTable". Когда я добавляю человека в deathTable, который он/она был в родословной, я хочу удалить его имя и фамилию из-под рождения, потому что я добавляю его/ее в deathTable. Но я не знаю, как я могу это сделать?
Что вам нужно сделать, так это построить DELETE FROM
-query. Если вы хотите удалить только одну строку из таблицы, вы должны быть уверены, что параметры, которые вы ей указываете, уникальны для этой строки. Обычно это делается с помощью столбца с именем id
. Затем, зная id, все, что вам нужно сделать, это следующее:
DELETE FROM table WHERE id=<your id>;
Я думаю, что в вашем случае у вас может быть таблица под названием "люди" и булевский столбец "живой", который равен 1, если человек жив, и 0, если человек мертв.
Если вы все же хотите удалить одну строку из вашей родительской таблицы, если вы знаете имя этого человека, вы делаете это следующим образом:
DELETE FROM birthTable WHERE firstName=<first name> AND lastName<last name>;
Я предположил, что имена столбцов для имени и фамилии firstName и lastName, вам придется изменить это, чтобы они соответствовали вашим именам столбцов. Это приведет к удалению любой записи в BirthTable, которая соответствует критерию (может быть более одного, если у вас есть, например, 2 человека по имени Алан Джонсон).
Надеюсь, что это поможет.:)
То, что вы описываете, может быть сделано вручную или с помощью триггеров, но обычно вы не должны этого делать.
У вас должна быть таблица, называемая людьми, а затем просто отмечайте ее как мертвую или живую. Вместо этого вы также можете создать два столбца для своего дня рождения и дня смерти, если вы собираетесь хранить эту информацию.
В общем, вы не должны перемещать записи просто потому, что некоторые атрибуты о них изменились.
Это SQL:
DELETE FROM birthTable WHERE id = ...
где id
- это имя некоторого идентифицирующего поля.
Вы можете записать триггер для вставки в таблицу deathTable
, которая удаляет соответствующую строку из birthTable
.
CREATE TRIGGER trg_deathTable_insert
BEFORE INSERT ON deathTable
FOR EACH ROWS
BEGIN
DELETE FROM birthTable WHERE person_id = NEW.person_id;
END;
DELETE FROM birthTable WHERE id = xxx