sql >> Databasteknik >  >> RDS >> Mysql

MySql sammansatta nycklar och nollvärden

http://dev.mysql.com/doc/refman /5.0/en/create-index.html

"Ett UNIKT index skapar en begränsning så att alla värden i indexet måste vara distinkta. Ett fel uppstår om du försöker lägga till en ny rad med ett nyckelvärde som matchar en befintlig rad. Denna begränsning gäller inte för NULL-värden förutom för BDB-lagringsmotor. För andra motorer tillåter ett UNIKT index flera NULL-värden för kolumner som kan innehålla NULL."

Så nej, du kan inte få MySQL att behandla NULL som ett unikt värde. Jag antar att du har ett par val:du kan göra vad du föreslog i din fråga och lagra ett "speciellt värde" istället för null, eller så kan du använda BDB-motorn för tabellen. Jag tror dock inte att denna mindre skillnad i beteende motiverar ett ovanligt val av lagringsmotor.




  1. Använder du Django databaslager utanför Django?

  2. Kan jag SSH till MySQL med GUI-verktygen?

  3. Vad är Oracle SQL &PL/SQL? Allt en nybörjare behöver veta

  4. Hur man ignorerar Duplicate Key-fel i T-SQL (SQL-server)