0

私は「議題」と呼ばれるテーブルを持っています//翻訳:乳製品

次の行で:

idagenda // primary key
title
waar
organisatie
...
etc.
...

また、アジェンダダタムと呼ばれる日記アイテム/イベントの日付の表もあります

次の行で:

id // primary key
idagenda // id from other table
van //from
tot // till
datum // date

フィールド「tot」が今日の日付の場合、データベースから行が削除されますが、「agenda」テーブルの行はそのまま残ります。私はそれらを呼び出していないので、それらは削除されません。

私の削除クエリは次のようになります。

DELETE FROM agendadatum WHERE tot < NOW(); 

アジェンダの外部キーと同じIDを持つ「アジェンダ」テーブルから行を削除するにはどうすればよいですか?

4

3 に答える 3

0

作成テーブルでは、次のような外部キー制約に言及する必要があります

FOREIGN KEY (product_id) REFERENCES products (id)
       ON DELETE CASCADE
       ON UPDATE CASCADE,

その後、削除クエリを実行すると、テーブルのIDを参照している行が自動的に削除されます

カスケードの削除にある説明を確認できます

于 2013-08-22T13:16:58.543 に答える
0

PHPを使用している場合は、次のことを試すことができます

//get all agentadatum data with date now and before
$select_agendadatum = mysql_query("SELECT * FROM agendadatum WHERE tot <= NOW()") or die (mysql_error());
//loop through rows
while($row_agendadatum = mysql_fetch_assoc($select_agendadatum))
{
     //delete agendadatum row
     $delete_agendadatum = mysql_query("DELETE FROM agendadatum WHERE id = '".$row_agendadatum['id']."'") or die (mysql_error());
    //delete agenda row
    $delete_agenda= mysql_query("DELETE FROM agenda WHERE idagenda = '".$row_agendadatum['idagenda']."'") or die (mysql_error());
}

ロジックがエージェントごとに複数のアジェンダを受け入れる場合、エージェントを削除する前に、特定のエージェントに複数のアジェンダがあるかどうかを単純に数えることができます...

お役に立てれば

于 2013-08-22T13:27:03.897 に答える