sql >> Databasteknik >  >> RDS >> Mysql

Kan en databastabell vara utan en primärnyckel?

Tekniskt sett kan du deklarera en sådan tabell.

Men i ditt fall, time bör göras till PRIMARY KEY , eftersom det förmodligen är fel att ha olika temperaturer under samma tid och förmodligen värdelöst att ha samma mer än en gång.

Logiskt sett bör varje tabell ha en PRIMARY KEY så att du kunde skilja två poster.

Om du inte har en kandidatnyckel i dina data, skapa bara en surrogat (AUTO_INCREMENT , SERIAL eller vad din databas erbjuder).

Den enda ursäkten för att inte ha en PRIMARY KEY är en logg eller liknande tabell som är föremål för tung DML och att ha ett index på det kommer att påverka prestandan utöver toleransnivån.



  1. EF och TransactionScope för både SQL Server och Oracle utan att eskalera/spänna till DTC?

  2. Hur kan jag använda Date Datatype i sql-servern?

  3. Har SQL Server 2005 en motsvarighet till MySqls ENUM-datatyp?

  4. Kasta millisekundsdelen från tidsstämpeln