sql >> Database >  >> RDS >> Mysql

Kan ik VARCHAR als PRIMAIRE SLEUTEL gebruiken?

Natuurlijk kan dat, in die zin dat uw RDBMS u dit toestaat. Het antwoord op de vraag of je al dan niet moet doen is echter anders:in de meeste situaties mogen waarden die een betekenis hebben buiten uw databasesysteem niet worden gekozen als primaire sleutel.

Als u weet dat de waarde uniek is in het systeem dat u modelleert, is het gepast om een ​​unieke index of een unieke beperking aan uw tabel toe te voegen. Uw primaire sleutel moet echter over het algemeen een "betekenisloze" waarde zijn, zoals een automatisch verhoogd getal of een GUID.

De reden hiervoor is eenvoudig:fouten bij het invoeren van gegevens en onregelmatige wijzigingen in dingen die onveranderlijk lijken, gebeuren. Ze worden veel moeilijker te fixeren op waarden die als primaire sleutels worden gebruikt.



  1. Oracle PL/SQL:Dynamisch SQL-voorbeeld met Execute Immediate

  2. Schending van UNIQUE KEY-beperking op INSERT WHERE COUNT(*) =0 op SQL Server 2005

  3. Hoe een enum-typewaarde in postgres te verwijderen?

  4. Hoe de secundaire records in de onderliggende rij van de gegevenstabel met respectieve id weer te geven?