webForumDet fria alternativet

Hur att inte lagra fler identiska rader i en tabell?

Databaser & SQL

1 svar · 136 visningar · startad av Dr-man

Medlem sedan juli 2002732 inlägg
Frågan#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.

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)