Ich habe einen einfachen Kartentisch:Datensätze dynamisch entfernen, wenn bestimmte Spalten = 0; Datenbereinigung
CREATE TABLE `users_individual_cards` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` char(36) NOT NULL,
`individual_card_id` int(11) NOT NULL,
`own` int(10) unsigned NOT NULL,
`want` int(10) unsigned NOT NULL,
`trade` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`,`individual_card_id`),
KEY `user_id_2` (`user_id`),
KEY `individual_card_id` (`individual_card_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1;
ich Ajax muß hinzufügen, und die Datensätze auf Basis von OWN, will sie, und TRADE zu entfernen. Wenn der Benutzer jedoch alle OWN-, WANT- und TRADE-Karten entfernt, werden sie auf Null gesetzt, aber der Datensatz wird in der Datenbank belassen. Ich würde es vorziehen, den Datensatz entfernt zu haben. Wird nach jedem "update" überprüft, ob alle Spalten = 0 die einzige Möglichkeit sind, dies zu tun? Oder kann ich einen bedingten Trigger mit so etwas wie:
//psuedo sql
AFTER update IF (OWN = 0, WANT = 0, TRADE = 0) DELETE
Was ist der beste Weg, dies zu tun? Kannst du mit der Syntax helfen?
Sie können einen Trigger nicht zum Aktualisieren von [Löschen von] der gleichen Tabelle wie der Trigger verwenden, da dies sonst zu rekursiven Triggern führt. Nun, in MySQL sowieso nicht, SQL Server und Oracle sind zufrieden damit, wenn es gut gemacht ist. – RichardTheKiwi