Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1685 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Supprimer toutes les contraintes d'une table

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MySQL] Supprimer toutes les contraintes d'une table

n°2310283
sire de Bo​tcor
Armorican way of life
Posté le 23-01-2018 à 15:09:06  profilanswer
 

Salut !

 

Je cherche une solution pour supprimer toutes les contraintes de type foreign key d'une table MySQL (ou plutôt Maria DB).

 

J'ai essayé avec des choses comme ça :
ALTER TABLE maTable DROP FOREIGN KEY *;
ALTER TABLE maTable DROP FOREIGN KEY LIKE 'a%'; (elles commencent toutes par a)
mais bien entendu ça me jette et je ne trouve pas d'info pour faire ça dans la doc :/

 

Quelqu'un aurait une idée ?

 


edit : Je viens d'essayer d'un autre manière, sans plus de succès :/

Code :
  1. DELETE
  2. FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
  3. WHERE TABLE_NAME = 'maTable'
  4. AND TABLE_SCHEMA = 'maBase'
  5. AND REFERENCED_TABLE_SCHEMA IS NOT NULL;

ça me répond : "Access denied for user 'root'@'localhost' to database 'information_schema' "


Message édité par sire de Botcor le 23-01-2018 à 15:20:07

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
mood
Publicité
Posté le 23-01-2018 à 15:09:06  profilanswer
 

n°2310287
sire de Bo​tcor
Armorican way of life
Posté le 23-01-2018 à 16:02:28  profilanswer
 

Bon, j'ai trouvé une solution pas pratique du tout car non utilisable dans un script :
 
Je passe d'abord ce script :

Code :
  1. SELECT concat('alter table ',table_schema,'.maTable DROP FOREIGN KEY ',constraint_name,';')
  2. FROM information_schema.table_constraints
  3. WHERE constraint_type='FOREIGN KEY'
  4. AND TABLE_NAME = 'maTable'
  5. AND table_schema='maBase';

Puis je récupère le résultat et le passe à son tour comme script...
 
 
 
Si qqun a une solution qui permette de rester 100% dans le script de départ, je suis preneur :)


Message édité par sire de Botcor le 23-01-2018 à 16:03:54

---------------
«Ceux qui croient que les peuples suivront leurs intérêts et non leurs passions n’ont rien compris au XXe siècle.» © Raymond Aron
n°2312097
jsonline
Ryzen inside ;-)
Posté le 07-03-2018 à 14:31:55  profilanswer
 


Vous dites que c'est "non utilisable dans un script". Je suppose donc que vous vous limitez à un script SQL.
 
Si vous utilisiez un script en shell, il pourrait gérer l'envoi de vos parametres (maBase et maTable), constituer la requête (voire les requêtes si plusieurs tables sont à traiter)  qui vous intéresse et ensuite l'exécuter.
 
Autre solution, un "PL/SQL like" : MariaDB utilise SQL/PSM. Plus d'info ici par exemple : https://ocelot.ca/blog/blog/2017/01 [...] n-mariadb/
 


---------------
Topic du routeur RTN56U : http://forum.hardware.fr/hfr/resea [...] 3573_1.htm  OC i5 750 : http://forum.hardware.fr/hfr/Overc [...] 6399_1.htm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [MySQL] Supprimer toutes les contraintes d'une table

 

Sujets relatifs
conseil pour établir MCD relations table accesssecuriser l'acces à la base mysql
MySQL Conflit Xampp / Wamp[MySQL] Combiner un select classique et un count()
Table ou achievements/succès[MySQL] Ajout de multiples enregistrements avec trigger
[Java/SQL] JPA et contraintes de clef etrangerePYTH COUNT MYSQL.Connector
VBA word supprimer lignes en doublesINDEX est obligatoire pour afficher contenu de la table ?
Plus de sujets relatifs à : [MySQL] Supprimer toutes les contraintes d'une table


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR