Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как в инзерт запихнуть селект? [D6, MySQL]


vegarulez ©   (2007-04-28 07:05:00) 

Привет мастерам у меня вот такой вопрос- пытаюсь продублировать запись в БД (MySQL) , чтобы она была с новым ИД-ом(поле ID уникальное, автоинкремент), для этого хочу сделать так:

INSERT INTO `qwert` ( `x` , `y` , `z` ) VALUES (select `x` , `y` , `z` FROM `qwert` where `ID`=1)

{
При инзерте ID не требуется указывать в инзерте - т.к. он автоинкремент должен автоматом создаваться сам.... как вот тут
INSERT INTO `qwert` ( `x` , `y` , `z` ) VALUES (1 ,2, 3)
}

Так вот вопрос - как мне продублировать запись? Подскажите, т.к. первый запрас ругается на селект...


Megabyte   (2007-05-02 11:35:00) [1]


> sniknik ©  (28.04.07 08:51) [4]

у них там вообще с подзапросами проблемы, насколько знаю. (или были в старых версиях)

Факт, сам столкнулся.


vegarulez   (2007-04-30 12:28:00) [2]

Попробовал использовать для доступа к MySQL 4.1.16-maxZeosDBO - получилось.
Ни у кого нет мыслей по DBE?


vegarulez   (2007-04-28 20:44:00) [3]

Народ кто с таким сталкивался?... подмогите.... (D6, XP, MySQL 3.23.53-max ---> MySQL 4.1.16-max)


vegarulez   (2007-04-28 19:34:00) [4]

рабочая бд была под мускулем 3.23.53-max
перенёс её на мускль 4.1.16-max


vegarulez   (2007-04-28 19:23:00) [5]

вроде в старой бд win1251 я вот думаю, может просто из-за того что библиотеки старые? libmysql.dll и dbexpmys.dll. Но хотя SQLConnection1 с ними нормально подцепляется....  и даже SQLDataSet1 таблички видит подключаясь через этот конектион...  тока когда active = true делаешь - ошибка таже...


vegarulez   (2007-04-28 18:41:00) [6]

не знаю, наверно... как это посмотреть?


Desdechado   (2007-04-28 15:58:00) [7]

База в какой кодировке? Юникод, небось?


vegarulez   (2007-04-28 14:30:00) [8]

Забыл уточнить ....Для подключения использую dbExpress компоненты... (хотя из ошибки видно...)


vegarulez   (2007-04-28 14:08:00) [9]

тут возникла другая проблема.... :(

Вставка то нормально работает в пхпмайадмине....

перешёл на делф, открыл свой проект...

элемент SQLDataSet1 при обращении к табличке теперь выдаёт такую вот ошибку...

DBX Erorr: Invalid Translation

сменил ctQuery (думал мож селект кривой) на ctTable  ошибка таже...

подскажите в чём тут может быть дело?


Desdechado   (2007-04-28 11:14:00) [10]

Вставка самой в себя чревата. В разных серверах по-разному отрабатывает, и это нужно иметь в виду.


vegarulez   (2007-04-28 10:01:00) [11]

поставил новую версию Денвера с более новым мусклем
запрос ЮЮ ©   (28.04.07 07:09) [1]
успешно прошёл.

Т.ч. дело видимо было  этом... спасибо. Вопрос решён.


sniknik   (2007-04-28 08:51:00) [12]

еще попробуй из другой таблицы вставить... проверить, может в MySQL недопустима вставка из самой себя...
у них там вообще с подзапросами проблемы, насколько знаю. (или были в старых версиях)


ЮЮ   (2007-04-28 08:46:00) [13]

попробуй алиас в селективной части поставить:

INSERT INTO `qwert` ( `x` , `y` , `z` ) SELECT `x` , `y` , `z` FROM `qwert` as qwhere `ID`=1


vegarulez   (2007-04-28 07:29:00) [14]

phpMyAdmin в котором сначала отлаживаю запросы выдаёт такую ошибку -
Not unique table/alias: `qwert`


ЮЮ   (2007-04-28 07:09:00) [15]

VALUES в данной конструкции INSERT лишнее:

INSERT INTO `qwert` ( `x` , `y` , `z` ) SELECT `x` , `y` , `z` FROM `qwert` where `ID`=1


Наверх

Титульная страница Поиск, карта сайта Написать письмо