Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql][phpmyadmin] autoincrement w grupach
Forum PHP.pl > Forum > Bazy danych
timon27
Na tabelach często zakładam auto-increment na id i rozumiem jego działanie.
Ale czy da się zrobić to na grupach?

Mam kolumny:
1. grupa
2. id
3. cała reszta danych

Key, unique założone na pierwszych dwóch (razem).
Czy da się ustawić aby po wstawieniu
INSERT(27,'','dane')

Automatycznie wstawiało w kolumnie id licznik (kolejną liczbę naturalną), ale w obrębie wpisów o grupie 27?
Bo w phpmyadmin nie widzę takiej opcji i wgl nie wiem jak to zrobić.
Pyton_000
Ustawiasz PK na 2 kolumny, i AI na drugą kolumną.

Wtedy podając ID dla `grupa` i nie podając dla `id` zostanie automatem zwiększone ID w ramach grupy
timon27
Tak zrobiłem. Nie zadziałało.
W grupie '00' miałem id 1 oraz 2, dodając wpis:
insert values ('13','','dane')
utworzył wpis z id 3.
Primary key na kolumnach grupa i id razem.
Pyton_000
pokaż strukturę create
timon27
  1. CREATE TABLE test1 (grupa int(5),id int(5))
  2. ALTER TABLE `test1` ADD PRIMARY KEY( `grupa`, `id`);
  3. ALTER TABLE `test1` ADD INDEX( `grupa`, `id`);
  4. ALTER TABLE `test1` ADD UNIQUE( `grupa`, `id`);
  5. ALTER TABLE `test1` CHANGE `id` `id` INT(5) NOT NULL AUTO_INCREMENT;
  6. INSERT INTO `bazy`.`test1` (`grupa`, `id`) VALUES ('0', NULL), ('1', NULL);


różne id
redeemer
http://sqlfiddle.com/#!9/d261c/1

  1. CREATE TABLE test1 (
  2. grupa INT NOT NULL,
  3. id INT NOT NULL AUTO_INCREMENT,
  4. PRIMARY KEY (grupa,id)
  5. ) engine=MyISAM;
  6.  
  7. INSERT INTO test1 (`grupa`, `id`) VALUES ('0', NULL), ('1', NULL);
  8.  
  9. SELECT * FROM test1;


Tabela musi być na MyISAM
timon27
Moja jest na myisam...
Moja nie działa, twoja działa.
Ale nie wnikam, najważniejsze że mam działającą.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.