MySQL - Sens de la “CLÉ PRIMAIRE”, “CLÉ UNIQUE” et “CLÉ” quand ils sont utilisés ensemble lors de la création d'une table
Quelqu'un peut-il expliquer le but de PRIMARY KEY
, UNIQUE KEY
et KEY
, si elle est mis ensemble dans un seul CREATE TABLE
déclaration dans MySQL?
CREATE TABLE IF NOT EXISTS `tmp` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` varchar(255) NOT NULL,
`name` varchar(255) NOT NULL,
`tag` int(1) NOT NULL DEFAULT '0',
`description` varchar(255),
PRIMARY KEY (`id`),
UNIQUE KEY `uid` (`uid`),
KEY `name` (`name`),
KEY `tag` (`tag`)
) ENGINE=InnoDB AUTO_INCREMENT=1 ;
Comment puis-je convertir cette requête pour MSSQL?
- connexes: mySQL-CLÉ mot-clé? Fondamentalement
KEY
est synonyme deINDEX
.
Vous devez vous connecter pour publier un commentaire.
Une clé est juste un indice normal. Un chemin sur la simplification est de la penser comme une carte de catalogue à la bibliothèque. C'points de MySQL dans la bonne direction.
Une clé unique est également utilisé pour améliorer la recherche de vitesse, mais il a la contrainte qu'il n'existe pas d'éléments dupliqués (il n'y a pas deux x et y où x n'est pas y et x == y).
La manuel l'explique comme suit:
Une clé primaire est un "spécial" clé unique. C'est fondamentalement une clé unique, sauf que c'est utilisé pour identifier quelque chose.
Le manuel explique comment les index sont utilisés en général: ici.
En MSSQL, les concepts sont similaires. Il y a des indices, des contraintes uniques et des clés primaires.
Pas testé, mais je crois que la MSSQL équivalent est:
Edit: le code ci-dessus est testé pour être correcte; toutefois, je soupçonne qu'il y a une bien meilleure syntaxe pour le faire. Été un moment depuis que j'ai utilisé SQL server, et apparemment j'ai oublié un peu :).
Juste pour ajouter d'autres réponses, le la documentation donne cette explication:
MySQL unique et des clés primaires servent à identifier les lignes. Il peut y avoir qu'une seule clé Primaire dans une table, mais une ou plusieurs touches. La clé est juste de l'index.
pour plus de détails, vous pouvez vérifier http://www.geeksww.com/tutorials/database_management_systems/mysql/tips_and_tricks/mysql_primary_key_vs_unique_key_constraints.php
pour convertir mysql mssql essayer cela et voir http://gathadams.com/2008/02/07/convert-mysql-to-ms-sql-server/