MySQL 5.0.32 Create Table Problem

Meccan

Erfahrenes Mitglied
Hallo,

ich versuche folgende Test Tabelle zu erstellen

Code:
     CREATE  TABLE  `test` ( `id` INT NOT  NULL  AUTO_INCREMENT ,
 `text1` TEXT( 30  )  NOT  NULL ,
 `text2` TEXT( 30  )  NOT  NULL ,
 `text3` TEXT( 30  )  NOT  NULL ,
 PRIMARY  KEY (  `int`  ) ,
 UNIQUE ( `text1` ,
 `text2` ,
 `text3` 
)
) CHARACTER  SET  = latin1

leider wird mir folgende Fehlermeldung ausgegeben:

Code:
#1170 - BLOB/TEXT column 'text1' used in key specification without a key length

Ich möchte gerne eine Tabelle erstellen die einen Autoincrementen Primärschlüssel id hat und es sollen die Kombination von text1, text2, text3 einzigartig sein.

Danke im Voraus für die Antwort.

MFG Meccan
 
Sry,
da hab ich was flasch rumkopiert.
Also der Primarykey stimmt schon.

Code:
CREATE  TABLE  `test` ( 
 `id` INT NOT  NULL  AUTO_INCREMENT ,
 `text1` TEXT( 30  )  NOT  NULL ,
 `text2` TEXT( 30  )  NOT  NULL ,
 `text3` TEXT( 30  )  NOT  NULL ,
 PRIMARY  KEY (  `id`  ) ,
 UNIQUE ( `text1` ,
 `text2` ,
 `text3` 
)
) CHARACTER  SET  = latin1
 
Also ich habe es mit folgenden Link gelöst:
http://www.mydigitallife.info/2007/...ed-in-key-specification-without-a-key-length/

MySQL hat einfach ein Problem mit Textfelder die auf eine Länge begrenzt sind, wenn man ein Textfeld als Index, PrimaryKey oder Unique kennzeichnen will, sollte man dazu ein Varchar verwenden und diesen dann auf eine maximale Länge begrenzen.

Code:
CREATE TABLE `data` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(30) default NULL,
  `pw` varchar(30) NOT NULL,
  `time` int(11) NOT NULL,
  `ip` int(11) NOT NULL,
  `size` int(11) NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name` (`name`,`time`)
)

Ich finde das ist eine sehr komische eigenart da ich leider Oracle gewöhnt bin :)
 
Zurück