Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [mysql][phpmyadmin] autoincrement w grupach, czy to możliwe?
timon27
post
Post #1





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
timon27
post
Post #3





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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.

Ten post edytował timon27 15.07.2015, 08:25:48
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


pokaż strukturę create
Go to the top of the page
+Quote Post
timon27
post
Post #5





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


  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

Ten post edytował timon27 15.07.2015, 08:52:51
Go to the top of the page
+Quote Post
redeemer
post
Post #6





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
timon27
post
Post #7





Grupa: Zarejestrowani
Postów: 578
Pomógł: 69
Dołączył: 15.04.2007
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Moja jest na myisam...
Moja nie działa, twoja działa.
Ale nie wnikam, najważniejsze że mam działającą.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 00:40