Hur att inte lagra fler identiska rader i en tabell?

Databaser & SQL

1 svar · 145 visningar · startad av Dr-man

Medlem sedan juli 2002732 inlägg
Trådstart#1

Finns det nåt sätt att inte lagra fler identiska än en rad i tabell med MySQL?

Strukturen på tabellen:

mysql> desc tempuser; 
+-------+--------------+------+-----+---------+----------------+ 
| Field | Type         | Null | Key | Default | Extra          | 
+-------+--------------+------+-----+---------+----------------+ 
| id    | int(11)      |      | PRI | NULL    | auto_increment | 
| ip    | varchar(100) | YES  |     | NULL    |                | 
| date  | datetime     | YES  |     | NULL    |                | 
| info  | text         | YES  |     | NULL    |                | 
| user  | varchar(30)  | YES  |     | NULL    |                | 
+-------+--------------+------+-----+---------+----------------+ 
5 rows in set (0.01 sec)
Medlem sedan dec. 200012 464 inlägg
#2

Du kan använda unique när du skapar din tabell eller med alter table.

create table t(c1 date, c2 char,c3 int, unique(c2,c3),
primary key(c1))

Det innebär att kombination av c2 och c3 måste vara unik. Även c1 måste vara unik då den är definierad som primärnyckel.

251 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)