Utilisez d'abord SHOW INDEX FROM tbl_namepour connaître le nom de l'index. Le nom de l'index est stocké dans la colonne appelée key_namedans les résultats de cette requête.
Désolé monsieur, je l'avais essayé avant de poser la question, mais cela ne fonctionne pas
Ankur Mukherjee
@Ankur Mukherjee: J'ai oublié de mentionner: vous devez remplacer tbl_name et index_name par le nom de votre table réelle et le nom de l'index réel, respectivement. Vous pouvez voir les noms dans le navigateur de requêtes MySQL. Vous pouvez aussi le faire SHOW CREATE TABLE tbl_name.
Mark Byers
Message d'erreur: "Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à la version de votre serveur MySQL pour la bonne syntaxe à utiliser près de '(player_id, année, tournoi)' à la ligne 1"
Ankur Mukherjee
1
@Ankur Mukherjee: La façon dont j'ai suggéré est à mon avis la meilleure façon de le faire.
Mark Byers
1
J'ai lu quelque part dans la question en utilisant phpMyAdmin ... La réponse fournie par @systemovich devrait être marquée comme acceptée.
Pere
123
Vous pouvez DROPcréer une contrainte unique à partir d'une table à l' aide de phpMyAdmin comme demandé, comme indiqué dans le tableau ci-dessous. Une contrainte unique a été placée sur le champ Envergure. Le nom de la contrainte est le même que le nom du champ, dans ce cas.
Il est important de noter que la section des index est réduite par défaut et est développée par un petit lien subtil en police 12px où la section est dans la capture d'écran. Mais grâce à toi, je l'ai trouvé. Bénissez votre visage. +1
Jack
11
Les index capables de placer une contrainte de clé unique sur une table sont les index PRIMARYet UNIQUE.
Pour supprimer la contrainte de clé unique sur une colonne mais conserver l'index, vous pouvez supprimer et recréer l'index avec le type INDEX.
Notez que c'est une bonne idée que toutes les tables aient un index marqué PRIMARY.
Voté parce que @thomasrutter a évoqué le fait que la suppression d'une contrainte unique peut nuire aux performances des requêtes - et cela peut être atténué en remplaçant l' UNIQUEindex par un régulier INDEX.
Alex
4
Pour ajouter une contrainte UNIQUE à l'aide de phpmyadmin, accédez à la structure de ce tableau et trouvez ci-dessous et cliquez dessus,
Pour supprimer la contrainte UNIQUE, de la même manière, allez dans la structure et faites défiler jusqu'à l'onglet Index et trouvez ci-dessous et cliquez sur drop,
cette solution était exactement ce que je cherchais.
Aryeh Beitz
2
Pour WAMP 3.0: Cliquez sur Structure ci-dessous, ajoutez 1 colonne, vous verrez «- Index» Cliquez sur -Indexes et supprimez l'index que vous souhaitez.
Depuis MySQL 8.0.19, ALTER TABLE permet une syntaxe plus générale (et standard SQL) pour supprimer et modifier les contraintes existantes de tout type, où le type de contrainte est déterminé à partir du nom de la contrainte: ALTER TABLE tbl_name DROP CONSTRAINT symbol;
Exemple:
CREATETABLE tab(id INT,CONSTRAINT unq_tab_id UNIQUE(id));-- checking constraint name if autogeneratedSELECT*FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME ='tab';-- dropping constraintALTERTABLE tab DROPCONSTRAINT unq_tab_id;
mon nom de table est acheteurs qui a une colonne de contrainte unique emp_id maintenant je vais supprimer l'emp_id
étape 1: exécutez les acheteurs sp_helpindex, consultez le fichier image
étape 2: copier l'adresse d'index
étape3: modifier la contrainte de suppression des acheteurs de table [UQ__buyers__1299A860D9793F2E] modifier la colonne de suppression des acheteurs de table emp_id
Remarque:
Blockquote
au lieu d'acheteurs, changez-le en nom de table :)
Blockquote
c'est tout le nom de colonne emp_id avec contraintes qui est supprimé!
Réponses:
Une contrainte unique est également un index.
Utilisez d'abord
SHOW INDEX FROM tbl_name
pour connaître le nom de l'index. Le nom de l'index est stocké dans la colonne appeléekey_name
dans les résultats de cette requête.Ensuite, vous pouvez utiliser DROP INDEX :
ou la syntaxe ALTER TABLE :
la source
SHOW CREATE TABLE tbl_name
.Vous pouvez
DROP
créer une contrainte unique à partir d'une table à l' aide de phpMyAdmin comme demandé, comme indiqué dans le tableau ci-dessous. Une contrainte unique a été placée sur le champ Envergure. Le nom de la contrainte est le même que le nom du champ, dans ce cas.la source
Les index capables de placer une contrainte de clé unique sur une table sont les index
PRIMARY
etUNIQUE
.Pour supprimer la contrainte de clé unique sur une colonne mais conserver l'index, vous pouvez supprimer et recréer l'index avec le type
INDEX
.Notez que c'est une bonne idée que toutes les tables aient un index marqué
PRIMARY
.la source
UNIQUE
index par un régulierINDEX
.Pour ajouter une contrainte UNIQUE à l'aide de phpmyadmin, accédez à la structure de ce tableau et trouvez ci-dessous et cliquez dessus,
Pour supprimer la contrainte UNIQUE, de la même manière, allez dans la structure et faites défiler jusqu'à l'onglet Index et trouvez ci-dessous et cliquez sur drop,
J'espère que cela fonctionne.
Prendre plaisir ;)
la source
Pour WAMP 3.0: Cliquez sur Structure ci-dessous, ajoutez 1 colonne, vous verrez «- Index» Cliquez sur -Indexes et supprimez l'index que vous souhaitez.
la source
Si vous souhaitez supprimer des contraintes uniques de la table de base de données mysql, utilisez alter table with drop index.
Exemple:
créer une table unique_constraints (unid int, nom_activité varchar (100), CONSTRAINT activty_uqniue UNIQUE (nom_activité), clé primaire (unid));
Où activty_uqniue est UNIQUE pour ACTIVITY_NAME colonne.
la source
tout en laissant tomber la clé unique, nous utilisons l'index
la source
La contrainte pourrait être supprimée avec la syntaxe:
Exemple:
démo db <> violon
la source
mon nom de table est acheteurs qui a une colonne de contrainte unique emp_id maintenant je vais supprimer l'emp_id
étape 1: exécutez les acheteurs sp_helpindex, consultez le fichier image
étape 2: copier l'adresse d'index
étape3: modifier la contrainte de suppression des acheteurs de table [UQ__buyers__1299A860D9793F2E] modifier la colonne de suppression des acheteurs de table emp_id
Remarque:
au lieu d'acheteurs, changez-le en nom de table :)
c'est tout le nom de colonne emp_id avec contraintes qui est supprimé!
la source
Premier tableau à supprimer
aller à SQL
Utilisez ce code:
la source