konto usunięte

Temat: Autoincrement zależny od zewnętrznego klucza

Witam,
mam prośbę czy MySQL oferuję mechanizm autoincrementacji klucza na podstawie indeksu zewnętrznego?

Tabela 1

Primary Key Autoincrement
1
2

Tabela 2
Jakaś kolumna w tabeli 2, gdzie wartości zmieniają się jako autoincrement:
1 <- dla klucza 1 z tabeli 1
2 <- dla klucza 1 z tabeli 1
3 <- dla klucza 1 z tabeli 1
4 <- dla klucza 1 z tabeli 1
1 <- dla klucza 2 z tabeli 1
2 <- dla klucza 2 z tabeli 1
3 <- dla klucza 2 z tabeli 1
4 <- dla klucza 2 z tabeli 1
5 <- dla klucza 1 z tabeli 1
5 <- dla klucza 2 z tabeli 1
itd...

nie wiem czy udało mi się to dobrze wytłumaczyć.

Pozdrawiam
Tomasz Zadora

Tomasz Zadora programuję

Temat: Autoincrement zależny od zewnętrznego klucza

Nie wiem dokładnie o co Ci chodzi ale możesz wstawić w kolumnę typu autoincrement np. od razu wartość 100, mimo że w tabeli nic nie ma i wewnętrzny generator ustawi się na 101.

Podobnież przed wstawieniem danych możesz od razu ustawić licznik na jakąś wartość przez SET AUTOINCREMENT (http://dev.mysql.com/doc/refman/5.5/en/example-auto-in....

Później, bez problemu możesz wstawić wartości niższe niż obecne w kolumnie autoincrement pod warunkiem, że wartość nie istnieje ponieważ kolumna autoincrement zawsze musi być kolumną - kluczem podstawowym.Tomasz Zadora edytował(a) ten post dnia 19.07.11 o godzinie 11:01

konto usunięte

Temat: Autoincrement zależny od zewnętrznego klucza

zrób to triggerem after inser i masz pozamiatane :)
mechanizmu wbudowanego nie ma

konto usunięte

Temat: Autoincrement zależny od zewnętrznego klucza

Ok czyli w takim razie nie jest możliwe zrobienie tego co chciałem, klucz podstawowy to wyklucza.

Chciałem zrobić numeracje kolejną przy czym niektóre wartości mogły by się powtarzać. 1,2,3,4,5,1,2,3,4... chodziło o kolejną numeracje dla klucza zewnętrznego.

Klucz zew 1 i wartości dla niego 1,2,3,4...
kolejny wartość klucza zewnętrznego i znowu numeracja od 1

konto usunięte

Temat: Autoincrement zależny od zewnętrznego klucza

Paweł Kopeć:
Ok czyli w takim razie nie jest możliwe zrobienie tego co chciałem, klucz podstawowy to wyklucza.

Chciałem zrobić numeracje kolejną przy czym niektóre wartości mogły by się powtarzać. 1,2,3,4,5,1,2,3,4... chodziło o kolejną numeracje dla klucza zewnętrznego.

Klucz zew 1 i wartości dla niego 1,2,3,4...
kolejny wartość klucza zewnętrznego i znowu numeracja od 1

klucz główny może być na dwu kolumnach jednocześnie, wtedy para inkrementu i id się nie zdubluje
Tomasz Zadora

Tomasz Zadora programuję

Temat: Autoincrement zależny od zewnętrznego klucza

Na przykład tabela aaa:


CREATE TABLE IF NOT EXISTS `aaa` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`foreign_key_1_id` int(10) unsigned NOT NULL,
`foreign_key_2_id` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`,`foreign_key_1_id`,`foreign_key_2_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


I teraz jeżeli dodasz rekord z jakimiś id zewnętrznymi w foreign_key_1_id / foreign_key_2_id to wartość id będzie się zwiększać automatycznie.



Wyślij zaproszenie do