sql >> Database >  >> RDS >> Mysql

Kan een databasetabel zonder primaire sleutel zijn?

Technisch gezien kun je zo'n tabel declareren.

Maar in jouw geval is de time moet worden gemaakt als de PRIMARY KEY , aangezien het waarschijnlijk verkeerd is om gedurende dezelfde tijd verschillende temperaturen te hebben en waarschijnlijk nutteloos om dezelfde meer dan eens te hebben.

Logischerwijs zou elke tabel een PRIMARY KEY moeten hebben zodat u twee records kunt onderscheiden.

Als u geen kandidaatsleutel in uw gegevens heeft, maakt u gewoon een surrogaatsleutel (AUTO_INCREMENT , SERIAL of wat uw database ook biedt).

Het enige excuus om geen PRIMARY KEY . te hebben is een log of soortgelijke tabel die onderhevig is aan zware DML en als er een index op staat, heeft dit invloed op de prestaties die verder gaan dan het tolerantieniveau.



  1. Hoe LN() werkt in MariaDB

  2. SELECTEER alle records die 30 dagen oud zijn

  3. SQLite-queryresultaten opmaken als een door komma's gescheiden lijst

  4. Retourneer rijen in de exacte volgorde waarin ze zijn ingevoegd