Bu, MySql'de kullanılabilir mi? R1234, R1235, R1236 ... vb gibi bir harfle ön eklenmiş bir otomatik artışlı Birincil Anahtar alabilir miyim?MySql otomatik artırım Alfa nümerik birincil anahtar?
cevap
Yapabildiğiniz anahtarı iki sütun olarak saklamaktır. Her ikisi de birincil anahtar için gruplanmış bir char öneki ve bir otomatik artışlı int.
CREATE TABLE myItems (
id INT NOT NULL AUTO_INCREMENT,
prefix CHAR(30) NOT NULL,
PRIMARY KEY (id, prefix),
...
Not Bu, yalnızca MyISAM için çalışır, InnoDB tablo türleri için geçerli değildir. –
Önek olarak sadece bir harfe ihtiyacınız var, yani R123, böylece yerden tasarruf etmek için CHAR (30) yerine CHAR (1) kullanmalısınız. Önek olarak iki harfe, yani RG123'e ihtiyacınız varsa, o zaman CHAR (2) kullanmış olmalısınız. –
Eğer öncü karakter sabit olacaksa, bileşik tuşlardan kaçınırım. Bir değişkenin bir çift ile tanımlanması, çizgiyi oldukça dağınık hale getirir. –
Bunun gibi iki alanla yapabilirsiniz. ama bunu benim için bir alanla yapamazsın.
create table foo (
code char,
id int unsigned not null auto_increment
primary key(id,code)
);
Hayır ama MyISAM tablolar için bir çok sütunlu endeksi oluşturabilir ve ikincil sütun üzerinde auto_increment alanı koymak, bu yüzden hemen hemen aynı soruyorsun sahip olacaktır:
CREATE TABLE t1 (prefix CHAR(1) NOT NULL, id INT UNSIGNED AUTO_INCREMENT NOT NULL,
..., PRIMARY KEY(prefix,id)) Engine = MyISAM;
INSERT INTO t1(prefix) VALUES ('a'),('a'),('b'),('b');
SELECT * FROM t1;
a 1
a 2
b 1
b 2
yapabilirsiniz here 'dan daha fazla ayrıntı edinin Not: INNODB motoru
- 1. mysql, birincil anahtar ve otomatik azaltma sütununu değiştirme sütununu değiştirin
- 2. Hazırlanan deyimden otomatik oluşturulan birincil anahtar kimliği
- 3. Birincil anahtar otomatik olarak dizine eklenmiş mi?
- 4. Entity Framework otomatik oluştur birincil anahtar
- 5. MySQL ve 2 sütunları Birincil anahtar
- 6. 2 birincil anahtar başvuruyor 1 birincil anahtar
- 7. MySQL LOAD DATA INFILE - Birincil anahtar olmayan bir dosya yükleniyor
- 8. MySQL - VARCHAR'ı AUTO INCREMENT olarak kullanmak için Birincil Anahtar
- 9. Birincil birincil anahtar sütununa katılmayı nasıl oluşturabilirim?
- 10. Birincil anahtar ihlali kısıtlaması
- 11. nasıl bir birincil anahtar
- 12. Realm birincil anahtar geçişi
- 13. yeni birincil anahtar
- 14. Bir satır eklerken MySQL otomatik artışlı birincil anahtar alanına ne eklenir?
- 15. Django Model Otomatik Artırımı Yabancı Anahtarya Dayalı Birincil Anahtar
- 16. Birincil anahtar nasıl ayarlanır, sonra otomatik alanlara dönüştürülür?
- 17. SQLAlchemy Birleştirme Öncesinde Otomatik Birleştirme ile Birincil Anahtar Edinme
- 18. Otomatik, Ruby on Rails'de birincil olmayan bir anahtar alanı artırma
- 19. MySQL, çoktan çoğa bağlantı tablosu için birincil anahtar gerektiriyor mu?
- 20. SQL'de birincil anahtar auto_increment olarak nasıl değiştirilir?
- 21. CakePHP'de yabancı anahtar değil birincil anahtar
- 22. PostgreSQL birincil anahtar uzunluğu sınırı
- 23. jQGrid birincil anahtar sorunu silindiğinde
- 24. dynamoDB'nin birincil anahtar listesini alın
- 25. cassandra birincil anahtar sütunu kısıtlanamaz
- 26. Varlık Çerçevesinde Birincil/Yabancı Anahtar
- 27. Oracle'da iki sütunlu birincil anahtar?
- 28. django içinde birleşik birincil anahtar
- 29. Cassandra UPDATE birincil anahtar değeri
- 30. Tablo/görünümde birincil anahtar tanımlanmış
için çalışmayacaktır. MySQL uzmanı değil ama sekansları destekleyip desteklemediğini kontrol etmek isteyebilirsiniz. – Limey
Amaç nedir? Veri tabanı tasarımının oldukça basit bir kuralını ihlal ettiğinize benziyor. Bir sütun sadece tek bir bilgi parçası içermelidir. Bunun gibi alfa-nümeriklerin birleştirilmesi, genellikle bu normalleşme kuralının ihlal edildiğine işarettir. Her zaman değil, ama genellikle. –