Encore mes plantages bizarres (POSTGRESQL cette fois)

Encore mes plantages bizarres (POSTGRESQL cette fois) - SQL/NoSQL - Programmation

Marsh Posté le 26-03-2020 à 22:36:43    

Bon ben voila... En PY j'ai créé un script qui efface des adresses de trois bases simultanement.
Bizarrement là, ça (re)commence à planter.
Aucun message d'erreur mais... les adresses ne sont pas effacées et là ça commence vraiment à me faire ch....
Notez que la BDD est en Postgresql.
Rien de très exceptionnel
 

Code :
  1. ADRESSE = raw_input ("EFFACER ADRESSE LIKE... " )
  2.     ligne = "%s%s%s" % ("SELECT URL FROM  table_1 WHERE URL LIKE '",ADRESSE,"' ORDER BY URL DESC;" )
  3.     print ligne
  4.     cursor.execute(ligne)
  5.     rows = cursor.fetchall()
  6.     for row in rows:
  7.         print('{0}'.format(row[0]))
  8.     delete = raw_input ("EFFACER (oui:non) " )
  9.     if delete =="oui":
  10.         ligne = "%s%s%s" % ("DELETE FROM table_1 WHERE URL LIKE '",ADRESSE,"' ;" )
  11.         print ligne
  12.         cursor.execute(ligne)
  13.         ligne = "%s%s%s" % ("DELETE FROM  table_2 WHERE URL LIKE '",ADRESSE,"' ;" )
  14.         print ligne
  15.         cursor.execute(ligne)
  16.         ligne = "%s%s%s" % ("DELETE FROM  table_3 WHERE URL LIKE '",ADRESSE,"' ;" )
  17.         print ligne
  18.         cursor.execute(ligne)


---------------
http://www.ypikay.com
Reply

Marsh Posté le 26-03-2020 à 22:36:43   

Reply

Marsh Posté le 26-03-2020 à 23:58:46    

Sauf que a premiere vue la, like sert a rien...
 
Soit tu as l'addresse exacte, dans ce cas:
DELETE FROM table_1 WHERE url = 'ADRESSE';
 
Soit tu connais qu'un bout de l'adresse, dans ce cas:
DELETE FROM table_1 WHERE url LIKE '%ADRESSE%'
 
Les % servant a dire "n'importe quoi la"
 
Donc si tu veux delete avec ce qui commence par ce bout:
LIKE 'ADRESSE%'
 
Si tu veux qui fini:
LIKE '%ADRESSE'
 
Et si tu veux "quelque part dans la chaine de caractere":
LIKE '%ADRESSE%'
 
Sachant aussi que postgresql support ILIKE qui pourrait etre utile...


Message édité par Devil'sTiger le 26-03-2020 à 23:59:11
Reply

Marsh Posté le 27-03-2020 à 00:15:24    

oui je sais, merci, j'ai passé les bases depuis longtemps. c'est juste que j'ai aucune action.....
c'est ça qui est bizarre


---------------
http://www.ypikay.com
Reply

Marsh Posté le 27-03-2020 à 09:17:06    

Ca serait pas un pb de commit qui ne serait pas à true ou auto ? En gros, les transactions sont en mémoire mais aucun commit n'est fait. En général, le SGBD est configuré pour avoir le commit fait automatiquement. Du coup, pas besoin de faire un commit dans l'appli. T'es peut-être dans ce cas.
 
Fait un echo de ta requête SQL et copie là dans pgadmin pour l'exécuter manuellement. Y'a peut-être des caractères dans l'adresse qui posent soucis.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 27-03-2020 à 10:50:14    

le commit en effet je n'ai pas mis de commit je vais voir ça merci


---------------
http://www.ypikay.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed