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.

262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)