2014-11-30 4 views
0

У меня есть ранний вопрос, на который был дан ответ, где я хотел бы обновить определенную строку в таблице, если обновлена ​​одна и та же строка из другой таблицы. работает, но если эта строка удалена, запись остается в другой таблице. Пожалуйста, помогите также удалить это.SQL phpmyadmin update table, если null

Вот текущий триггер, в котором имя account_name копируется из main_accounts в таблицу платежей.

UPDATE payments a 
JOIN main_accounts b ON a.payment_method = b.payment_method 
SET a.account_name = b.account_name 

Большое вам спасибо!

+0

Так что вы хотите удалить запись из 'payments' таблицы, которая нет в таблице 'main_accounts' –

+0

Да, сэр. Ты прав. Этот столбец является «account_name» Триггер, который я использую сейчас, выполняет следующее: Когда я обновляю таблицу main_accounts, имя учетной записи копируется в account_name в платежах. Но когда я удаляю запись в account_name из main_accounts, имя account_name в платежах остается. Пожалуйста, помогите .. большое вам спасибо. –

+0

Почему бы вам не попробовать использовать каскад UPDATE DELETE. –

ответ

0

Вам нужен Delete с Sub-Query

DELETE FROM payments 
WHERE payment_method NOT IN (SELECT payment_method 
          FROM main_accounts) 

Но я хотел бы предложить вам иметь On Delete Cascade и On Update Cascade, которые сделают вашу жизнь легче

+0

Привет, Sir .. Спасибо, код работал, однако он удалил всю строку. Я хотел просто удалить запись. –

+0

Неплохо, теперь это будет 'payment_method'. Не используйте слово «SIR» –

+0

Это действительно удаление всей строки Sir. Я не знаю, чего не хватает. Когда я запускаю запрос, phpmyadmin запрашивает подтверждение, если я хочу запустить запрос удаления, и он удалит всю строку. Я также читал некоторые справочные сайты, но я не уверен, есть ли что-то вроде: таблица обновления join table2 on column = empty/null Я действительно не знаю. –