Je suis en train de supprimer de plusieurs tables avec la requête suivanteMySQL supprimer plusieurs tables en utilisant ON ne fonctionne pas
mysql> DELETE
-> info, pagelets, shingles, links
-> FROM
-> info
-> INNER JOIN pagelets
-> ON info.page_key=144
-> AND info.page_key=pagelets.page_key
-> INNER JOIN shingles
-> ON pagelets.pagelet_serial=shingles.pagelet_serial
-> INNER JOIN links
-> ON pagelets.pagelet_serial=links.pagelet_serial
-> ;
Query OK, 2050 rows affected (0.08 sec)
mysql> SELECT * FROM info;
+--------+----------+
| netloc | page_key |
+--------+----------+
| 1 | 2 |
| 1 | 118 |
+--------+----------+
2 rows in set (0.00 sec)
mysql> SELECT * FROM pagelets WHERE page_key =144;
+----------+----------------+
| page_key | pagelet_serial |
+----------+----------------+
| 144 | 245 |
| 144 | 246 |
| 144 | 249 |
| 144 | 253 |
Malheureusement, cela ne fonctionne que sur un des liens de table et d'information. (Tknow « Don pourquoi il doens't travail sur pagelets et bardeaux)
La requête originale était:
# DELETE
# info, pagelets, shingles, links
# FROM
# info INNER JOIN pagelets INNER JOIN shingles INNER JOIN links
# WHERE
# info.page_key=%(page_key)s
# AND info.page_key=pagelets.page_key
# AND pagelets.pagelet_serial=shingles.pagelet_serial
# AND pagelets.pagelet_serial=links.pagelet_serial
#
quelqu'un peut expliquer ce mystère?
et la requête d'origine ne fonctionne pas (vous l'aurez probablement deviné) –
Les données d'exemple que vous montrez n'ont pas de lignes correspondantes entre info et pagelets, il n'est donc pas étonnant que DELETE ne fonctionne pas. Je –