Wpis z mikrobloga

mirki, jak napisać za pomocą trigerrów czy czegoś tam innego żeby autoincrement działał na zasadzie że dla wybranej tabeli wrzuca id od przystych zwiększając id co 2, a dla drugiej tabeli id od 1 zwiekszająco też co 2, czyli w jednej tabeli mamy id tylko parzyste, a w innej nieparzyste ?

chociaż z tego co czytam i tak by musiała to być oddzielna kolumna nie działająca jako auto
increment ?
#mysql #sql #programowanie #webdev
  • 9
@Jurigag:

1. nie używasz auto increment na PK
2. zaczynasz tabele A z wpisem ID=1
3. zaczynasz tabele B z wpisem ID=2
4. do obu dajesz trigger BEFORE INSERT gdzie pobierasz MAX(ID) i dodajesz 2 czyli robisz SET NEW.id = MAX_ID+2

albo prosciej robisz dla obydwu PK z autoincrement i AFTER UPDATE w jednej dajesz NEW.mojeID=NEW.ID*2 a w drugiej NEW.mojeID=NEW.ID*2+1
@Jurigag: w czym masz backend? bo php zwraca lastinsertid tylko dla auto incrementu

i czemu taki kosmos robisz że parzyste/nieparzyste :D imo robisz coś bardzo źle :D

robiąc zapytania zawsze możesz użyć WHERE id % 2 = 0 / WHERE id % 2 = 1
bez potrzeby dodatkowej kolumny


@Jurigag: to chyba 100x łatwiej mieć ekstra kolumnę niż dwie tabele + union. nie wiem co tam mireczku klepiesz ale imo robisz coś źle :-)
jak napisać za pomocą trigerrów czy czegoś tam innego żeby auto_increment działał na zasadzie że dla wybranej tabeli wrzuca id od przystych zwiększając id co 2, a dla drugiej tabeli id od 1 zwiekszająco też co 2, czyli w jednej tabeli mamy id tylko parzyste, a w innej nieparzyste ?


@Jurigag: Najlepiej to wcale tego nie pisać. Nie ma takiego przypadku który by sankcjonował takie dziwne rozwiązania.