Czy to możliwe w MySql? Czy mogę mieć automatycznie zwiększający się klucz podstawowy poprzedzony literą, coś w stylu R1234, R1235, R1236 ... ect ??MySql automatycznie zwiększający się alfa-numeryczny klucz podstawowy?
Odpowiedz
Co można zrobić, to przechowywać klucz jako dwie kolumny. Przedrostek char i automatycznie inkrementujący int, oba są pogrupowane dla klucza podstawowego.
CREATE TABLE myItems (
id INT NOT NULL AUTO_INCREMENT,
prefix CHAR(30) NOT NULL,
PRIMARY KEY (id, prefix),
...
Uwaga: działa to tylko w przypadku typów tabel MyISAM, a nie InnoDB. –
Potrzebujesz tylko jednej litery jako przedrostka, np. R123, więc powinieneś użyć CHAR (1) zamiast CHAR (30), aby zaoszczędzić miejsce. Jeśli potrzebujesz dwóch liter jako przedrostka, np. RG123, powinieneś użyć CHAR (2). –
Chciałbym uniknąć klucza złożonego, jeśli wiodąca postać będzie stała. Identyfikacja rekordu za pomocą pary zmiennych staje się dość kłopotliwa. –
można to zrobić za pomocą dwóch takich pól. ale nie można tego zrobić za pomocą jednego pola zgodnie z moją wiedzą.
create table foo (
code char,
id int unsigned not null auto_increment
primary key(id,code)
);
Nie, ale dla tabel MyISAM można utworzyć indeksu wielu kolumn i umieścić pole auto_increment na kolumnie wtórnym, więc trzeba będzie prawie taki sam prosisz:
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
Można uzyskać więcej informacji od here Uwaga: to nie zadziała dla silnika INNODB
- 1. Klucz podstawowy wielokolumnowy MySQL
- 2. Czy klucz podstawowy jest automatycznie indeksowany w MySQL?
- 3. Usuń klucz podstawowy w MySQL
- 4. Podstawowy klucz złożony PostgreSQL
- 5. Macierzysty klucz podstawowy lub wygenerowany automatycznie?
- 6. MySQL: Określić stołu klucz podstawowy dynamicznie
- 7. MySQL: Jak ustawić klucz podstawowy na phpMyAdmin?
- 8. Zmiana MySQL klucz podstawowy, gdy istnieje klucz obcy contraints
- 9. Podstawowy klucz kontra kluczowego
- 10. MERGE Naruszenie klucz podstawowy
- 11. JPA kompozytowa klucz podstawowy
- 12. klucz podstawowy naruszenia ograniczenia
- 13. ScalaQuery wielokrotny klucz podstawowy i klucz obcy
- 14. Oracle złożony klucz podstawowy/klucz obcego pytania
- 15. Najlepszy sposób obsługi dużych (UUID) jako klucz podstawowy tabeli MySQL
- 16. JavaScript zwiększający się o 0.5 - jak?
- 17. iOS - Klucz podstawowy zestawu danych atrybut klucz
- 18. MySQL - Jeśli istnieje, uzyskaj klucz podstawowy. Inaczej dodaj wpis
- 19. Jak tabeli MySQL automatycznego przyrostu klucz podstawowy z niektórych prefiks
- 20. Jak zmienić klucz podstawowy MySQL z podpisu na niepodpisany?
- 21. SQL: ustawić istniejącej kolumny jako klucz podstawowy w MySQL
- 22. Jak ustawić klucz podstawowy od 1000?
- 23. Klucz podstawowy klastrowany vs nieklastrowany
- 24. Uzyskaj klucz podstawowy instancji modelu wymownego
- 25. Usunąć klucz podstawowy w datatable
- 26. Szyny - Zastąp klucz podstawowy has_one
- 27. Podstawowy klucz złożony w django
- 28. jak kropla nienazwany klucz podstawowy
- 29. Jak ręcznie ustawić klucz podstawowy w Doctrine2
- 30. Jak utworzyć złożony klucz podstawowy (adnotacja java)
Nie jest ekspertem MySQL, ale możesz sprawdzić, czy obsługuje sekwencje. – Limey
Jaki jest cel? Wygląda na to, że naruszasz całkiem podstawową zasadę projektowania baz danych. Kolumna powinna zawierać tylko jedną informację. Łączenie takich znaków alfanumerycznych jest często oznaką naruszenia tej zasady normalizacji. Nie zawsze, ale zazwyczaj. –