как вставить primary key ?

radiante

Новичок
Как добавить запись чтобы номер primary key новой созданной строки также вставился еще и в другое поле?

INSERT INTO table VALUES (0, N)

чтобы в поле N записался primary key , как сделать запрос?
 

zerkms

TDD infected
Команда форума
А в триггере значение автоинкремента уже посчитано? Если посчитано - то вот им и сделать.

Но вообще да - зачем?
 

radiante

Новичок
А в триггере значение автоинкремента уже посчитано? Если посчитано - то вот им и сделать.

Но вообще да - зачем?
Несколько строк связаны с одно главной тем что в одном из полей (A) этих строк записан ID главной строки. ID и A оба INT. Каким может быть A ?
A=0 строка не связана с главной
A=ID главной строки, т.е. связана с главной
A=ID своей строки, т.е. это и есть главная строка

Не знаю как еще сделать, 3 варианта какой может быть строка и как раз 3 значения каким может быть поле A. Можно конечно сделать последний вариант ID=-1 )))
 

radiante

Новичок
Надо вставить ID одним запросом, а если его получать только после создания строки то придеться делать еще один запрос UPDATE чтобы вставить во второе поле созданной строки значение ее ID.
 

baev

‹°°¬•
Команда форума
Сколько тут телепатов: как все догадались, что речь идёт об автоинкременте?

radiante, одним запросом не получится, читайте мануал (http://dev.mysql.com/doc/refman/5.1/en/insert.html):
An expression expr can refer to any column that was set earlier in a value list. For example, you can do this because the value for col2 refers to col1, which has previously been assigned:

INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);

But the following is not legal, because the value for col1 refers to col2, which is assigned after col1:

INSERT INTO tbl_name (col1,col2) VALUES(col2*2,15);

One exception involves columns that contain AUTO_INCREMENT values. Because the AUTO_INCREMENT value is generated after other value assignments, any reference to an AUTO_INCREMENT column in the assignment returns a 0.
 

antson

Новичок
Партнер клуба
напиши зачем это все делается ?
A=0 строка не связана с главной
A=ID своей строки, т.е. это и есть главная строка
чем именно различаются эти случаи ?
имхо если А=0 это уже главная строка ..
[телепат]Пытаешься закодировать, что есть подчиненные строки , ну так флаг 0/1 сделай дополнительно[/телепат]
 

radiante

Новичок
напиши зачем это все делается ?
A=0 строка не связана с главной
A=ID своей строки, т.е. это и есть главная строка
чем именно различаются эти случаи ?
имхо если А=0 это уже главная строка ..
[телепат]Пытаешься закодировать, что есть подчиненные строки , ну так флаг 0/1 сделай дополнительно[/телепат]
0/1 можно закодировать только свойство главная строка или подчиненная, но во втором случае придется тогда еще одно поле делать чтобы записать номер главной строки которой подчиненная принадлежит. Но зачем если это все можно закодировать в одном поле.

А вообще это фигня все. Я вот думаю как быструю выборку делать по индексному int полю (не первичный и не уникальный ключ), а по таким нельзя быструю выборку делать в nosql решениях, например в handlersocket)...
 
Сверху