Can anyone tell me if a table in a relational database (such as MySQL / SQL SERVER) can be without a primary key?
For example, I could have table day_temperature>
Technically, you can declare such a table.
But in your case, the time
should be made the PRIMARY KEY
, since it's probably wrong to have different temperatures for the same time and probably useless to have same more than once.
Logically, each table should have a PRIMARY KEY
so that you could distinguish two records.
If you don't have a candidate key in you data, just create a surrogate one (AUTO_INCREMENT
, SERIAL
or whatever your database offers).
The only excuse for not having a PRIMARY KEY
is a log or similar table which is a subject to heavy DML
and having an index on it will impact performance beyond the level of tolerance.