Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.19;
Скачать: CL | DM;

Вниз

Как в инзерт запихнуть селект?   Найти похожие ветки 

 
vegarulez ©   (2007-04-28 07:05) [0]

Привет мастерам у меня вот такой вопрос- пытаюсь продублировать запись в БД (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)
}

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


 
ЮЮ ©   (2007-04-28 07:09) [1]

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

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


 
vegarulez ©   (2007-04-28 07:29) [2]

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


 
ЮЮ ©   (2007-04-28 08:46) [3]

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

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


 
sniknik ©   (2007-04-28 08:51) [4]

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


 
vegarulez ©   (2007-04-28 10:01) [5]

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

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


 
Desdechado ©   (2007-04-28 11:14) [6]

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


 
vegarulez ©   (2007-04-28 14:08) [7]

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

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

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

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

DBX Erorr: Invalid Translation

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

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


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

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


 
Desdechado ©   (2007-04-28 15:58) [9]

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


 
vegarulez ©   (2007-04-28 18:41) [10]

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


 
vegarulez ©   (2007-04-28 19:23) [11]

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


 
vegarulez ©   (2007-04-28 19:34) [12]

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


 
vegarulez ©   (2007-04-28 20:44) [13]

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


 
vegarulez ©   (2007-04-30 12:28) [14]

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


 
Megabyte ©   (2007-05-02 11:35) [15]


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2007.08.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.024 c
1-1181322952
dRake
2007-06-08 21:15
2007.08.19
Средство для сбора дебаг-инфы после падения программы (+)


2-1184856530
kolyann..
2007-07-19 18:48
2007.08.19
забыл функцию


15-1185117642
Kostafey
2007-07-22 19:20
2007.08.19
Чтобы клавитуру не ломать...


15-1185146830
Ильюн
2007-07-23 03:27
2007.08.19
метод прогнозирования (АРПСС, arima)


15-1184921014
Kolan
2007-07-20 12:43
2007.08.19
Однако не появления BDS2006 на TaskBar е сильно виляет на работу.