Есть таблица вида
+--------+
| f1| f2|
+--------+
| 1 | 1 |
+--------+
| 1 | 2 |
+--------+
| 2 | 1 |
+--------+
| 2 | 2 |
+--------+
| 2 | 3 |
+--------+
.............
Тоесть поля f1 и f2
При этом f1 это индекс для джойна ещё одной таблицы, а поле f2 должно при вставке иметь авто инкремент относительно первого поля. Тоесть например для первого поля значения 1 и 2 уникальны, и, если при будет вставка с f1 равняется 1, то f2 должно автоматически увеличится на 1 (т.е. 3), но если f1 будет равняться 2, то, соответственно, f2 должно вставится как 4.
Возможно ли такое, и как его осуществить?
Просто проставления priamry ключа для двух полей при включеном авто инкременте на втором поле не помогает...
Спустя 2 минуты, 24 секунды (13.05.2010 - 13:08) jetistyum написал(а):
может не верно спроектирована база данных?
Спустя 1 минута, 26 секунд (13.05.2010 - 13:09) glock18 написал(а):
попробуй auto_increment на оба поля
Спустя 3 минуты, 58 секунд (13.05.2010 - 13:13) Ka4_0k написал(а):
Цитата |
попробуй auto_increment на оба поля |
Мне нужно только второе авто инкементарное
Цитата |
может не верно спроектирована база данных? |
Это именно тот случай когда нужна именно такая связь Я понял что ты имеешь в виду, но этот вариант мне не подходит.
Спустя 2 минуты, 59 секунд (13.05.2010 - 13:16) jetistyum написал(а):
тогда предварительно запросом выбираешь последнее поле, блокируешь таблиуц, увеличиваешь, вставляешь новое значение, разблокируешь...... автоинкремент мне кажется тут не покатит .... разве только может какая-то мускульная процедура, но я в этом не силён...
Спустя 8 минут, 58 секунд (13.05.2010 - 13:25) Michael написал(а):
Помоему только в MyISAM такое есть:
- для каждого значения первого столбца ключа генерируется счетчик с начала.
create table xxx(
proj varchar(20) not null,
och int unsigned not null auto_increment,
description varchar(100),
primary key(proj, och)) type = MYISAM;
- для каждого значения первого столбца ключа генерируется счетчик с начала.
Спустя 16 минут, 40 секунд (13.05.2010 - 13:42) waldicom написал(а):
Или триггером...
Спустя 14 минут, 11 секунд (13.05.2010 - 13:56) Ka4_0k написал(а):
Цитата |
Помоему только в MyISAM такое есть: create table xxx( proj varchar(20) not null, och int unsigned not null auto_increment, description varchar(100), primary key(proj, och)) type = MYISAM; - для каждого значения первого столбца ключа генерируется счетчик с начала. |
Спасибо большое. У меня поля местами стояли наоборот (первое было с инкрементом), поэтому и не считало.
_____________
-Oh My God! They Killed Kenny!
-You Bastards!