|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
15.09.2016, 16:26 | #1 |
Регистрация: 20.06.2009
Сообщений: 3
|
Вставка с копированием ключа в другое поле
MySql
Код:
|
15.09.2016, 16:53 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А зачем поле дубль ключа?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
15.09.2016, 16:59 | #3 |
Регистрация: 20.06.2009
Сообщений: 3
|
|
15.09.2016, 17:06 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
не уверен, но я бы попробовал сделать триггер на таблицу (на INSERT), и в этом триггере уже использовал ID как задумано.
|
16.09.2016, 15:31 | #5 | |
Форумчанин
Регистрация: 01.08.2016
Сообщений: 182
|
Цитата:
INSERT INTO `mytabl` SET `copyid` = ( (select LAST_INSERT_ID()) +1 ) но такие выкрутасы крайне нежелательны, тк теряется прозрачность и понятность кода. И автоинкремент у поля может быть не 1 а любое число. И LAST_INSERT_ID() не всегда показывает именно на последнюю вставленную запись. Например после запросов с хвостом ... ON DUPLICATE KEY UPDATE ID=LAST_INSERT_ID(ID) И для InnoDB таблиц конструкция "ON DUPLICATE KEY UPDATE" ведёт себя по особенному В итоге, внешне безобидная конструкция может начать вести себя непредсказуемо и зависеть от других запросов и типа таблиц. Последний раз редактировалось predefined; 16.09.2016 в 15:53. |
|
16.09.2016, 16:27 | #6 | |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
Цитата:
|
|
20.09.2016, 13:38 | #7 |
Форумчанин
Регистрация: 01.08.2016
Сообщений: 182
|
come-on, судя по таблице в стартпосте это поле у него не индексное, проблемы и сейчас нет. Но с архитектурой хранения данных явно есть какие траблы, раз такие выкрутасы делает.
|
20.09.2016, 14:24 | #8 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Код:
Код:
Автоинкремент работает если в запросе совсем НЕ УКАЗАНО это поле. Если поле указано, то он(SQL движок) честно "пытается" подставить указанное значение.
программа — запись алгоритма на языке понятном транслятору
|
20.09.2016, 14:39 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Наверно и мускул так не позволит, сиквел уж точно не разрешает таких фокусов. Логично - в этот момент нет значения id да и любого другого поля
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
20.09.2016, 15:44 | #10 |
Участник клуба
Регистрация: 21.10.2015
Сообщений: 1,361
|
зачем решать проблемы которых нет?
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вставка в поле | Kot070 | Microsoft Office Access | 2 | 07.06.2015 18:00 |
переход в другое поле после ввода буквы | ГОСЕАН | Помощь студентам | 6 | 10.01.2012 09:36 |
После ввода в поле по Enter нужно перейти на другое поле! | •ScReam•™ | Помощь студентам | 2 | 16.06.2009 08:47 |
Вставка в поле MEMO | Joe_Tribbiani | БД в Delphi | 7 | 20.04.2009 20:02 |
Вставка в поле Edit | EVO-X | Общие вопросы Delphi | 10 | 11.07.2008 22:25 |