2012-02-05 17 views
28

İlk 8000 karakterde bir unique_index oluşturmak için Alter komutunu oluşturmaya çalışıyorum. 8000 parçanın nasıl ekleneceğini anlayamıyorum. Herhangi bir yardım takdir edilecektir. Teşekkürler!Mysql - Uzun metin alanında benzersiz bir dizin oluşturmak için Alter tablosu deyimi

alter table <table_name> 
    add unique index <index_name> (<column_name> (8000)) 

Bu, ilgili dilbilgisi geçerli::

ALTER TABLE nextractor.tblhtml 
    ADD UNIQUE INDEX uniqueindex_InnerHTML (InnerHtml); 

cevap

42

MySQL docs göre, böyle bir şey gerekiyor

| ADD [CONSTRAINT [symbol]] 
     UNIQUE [INDEX|KEY] [index_name] 
     [index_type] (index_col_name,...) [index_option] ... 

ve

index_col_name: 
    col_name [(length)] [ASC | DESC] 
+0

Yukarıdaki alter deyimini denedim ve bana yanlış sözdizimi verir ( –

+0

@Mike - Sütun adı ve uzunluğu etrafında * ekstra * parantezi unuttum. Şimdi çalışır. –

+0

Bunu yaptığımda hata aldım. MySql "Belirtilen anahtar çok uzun; maksimum anahtar uzunluğu 767 bayt" diyerek, UTF8 tabloları için char başına 4 bayt kullanıyor. Varchar alanımı 255 uzun tuttum, bu yüzden varchar alanımı 191 olarak ayarladım. yeni bir benzersiz dizin. –

4

ALTER TABLE nextractor.tblhtml ADD UNIQUE INDEX uniqueindex_InnerHTML (InnerHtml (8000));

İlgili konular