Avatar billede ahrensberg Nybegynder
07. februar 2007 - 10:59 Der er 12 kommentarer og
1 løsning

Unique på Text

Hej alle

Jeg kan ikke få lov til at gøre et felt af typen TEXT til en unik celle.

Har prøvet følgende to måder:

----------------------------------------

1. SQL-forespørgsel:

CREATE TABLE `Usernames` (

`username` TEXT NOT NULL UNIQUE
)

2. SQL-forespørgsel:

CREATE TABLE `Usernames` (

`username` TEXT NOT NULL ,
UNIQUE (
`username`
)
)

Begge med denne fejl:

#1170 - BLOB/TEXT column 'username' used in key specification without a key length

----------------------------------------

Jeg har prøvet at sætte længde også, men det hjælpe ikke... :-/
Avatar billede kalp Novice
07. februar 2007 - 11:27 #1
hvis du gør den til primarykey så er den ven unique
Avatar billede kalp Novice
07. februar 2007 - 11:27 #2
ven = vel
Avatar billede coderdk Praktikant
07. februar 2007 - 11:27 #3
MySQL indekserer ikke hele text/blobs - Du skal angive hvor meget af starten (op til ca. 255 tegn) af texten skal være unik:

CREATE TABLE `Usernames` (
  `username` TEXT NOT NULL ,
  UNIQUE (`username`(100))
)
Avatar billede coderdk Praktikant
07. februar 2007 - 11:28 #4
Hvorfor vil du have et username til at kunne være 4 GB? Hvorfor ikke begrænse det til f.eks. 100 tegn og bruge VARCHAR i stedet?!
Avatar billede ahrensberg Nybegynder
07. februar 2007 - 12:10 #5
Kalp:> Dit kan jeg desværre ikke bruge, da jeg allerede har et id som primary key. Username måtte bare heller ikke opstå flere gange i databasen, så ovenstående var blot et eksempel.

Coderdk:> Det er helt perfekt. Det fungere. Sender du lige et svar? :o)
Avatar billede coderdk Praktikant
07. februar 2007 - 12:11 #6
(100) eller varchar? :)
Avatar billede ahrensberg Nybegynder
07. februar 2007 - 12:14 #7
Med hensyn til varchar, så har du da egentlig fuldstændig ret. Er hermed også rettet.
Avatar billede kalp Novice
07. februar 2007 - 12:25 #8
det er i orden:)

dog kan man sagtens have flere felter som primary key:)
Avatar billede ahrensberg Nybegynder
07. februar 2007 - 12:44 #9
Hvad gør det egentlig ved tabellen at denne har en primary key?
Avatar billede coderdk Praktikant
07. februar 2007 - 12:46 #10
En tabel uden en primary key er som en stak papirer du bare smider i en bunke. En primary key gør at databasemotoren kan finde en bestemt record med det samme, uden at gå dem alle igennem. Som at klistre små gule noter på siderne, så de stikker op ;)
Avatar billede kalp Novice
07. februar 2007 - 12:46 #11
gør jo at kolonnen kan bruges til at identificere en række.. du ved at indholdet af den kun findes 1 gang
Avatar billede ahrensberg Nybegynder
07. februar 2007 - 12:57 #12
Ja, men hvad gør primary andersledes end bare alm. unik?
Avatar billede coderdk Praktikant
07. februar 2007 - 13:01 #13
Når du indsætter bliver de sat ind i primery key orden, typisk i et B-træ. Unique er kun et constraint der sørger for at du ikke kan sætte dubletter ind. Primary key er mere ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester