Официальный сайт студ.городка НГТУ
Программирование и БД » [Mysql]КАК скопировать данные ? 

#1  12.04.06 13:09

[Mysql]КАК скопировать данные ?

Я хочу скопировать все записи на опрделенную дату на следующую дату.
не перенести, а скопировать можно ли это сделать средствами sql?
о способе select  а потом insert сам догадался :-))))))))))))))))

Offline

#2  12.04.06 14:21

Re: [Mysql]КАК скопировать данные ?

откуда куда? из кармана в кошелек? хотябы пример структуры таблиц дай...

Offline

#3  12.04.06 15:16

Re: [Mysql]КАК скопировать данные ?

Код: sql:

UPDATE tbl SET date="$date_new" WHERE id IN (SELECT id FROM tbl WHERE date="$date_old");

Offline

#4  12.04.06 16:28

Re: [Mysql]КАК скопировать данные ?

seva,

Stell Hawk написал(а):

не перенести, а скопировать

Stell Hawk,

Код: sql:

INSERT INTO tbl (field1,field2,field3,date) SELECT field1,field2,field3,time() FROM tbl WHERE id=xxx

Offline

#5  12.04.06 20:30

Re: [Mysql]КАК скопировать данные ?

Jaguar, нафига тебе структуры? читай толи правильно толи я не знаю)))

XuMiX,  либо я чето не понял в записи либо не работает.

Код::

INSERT INTO  kino_actions_response 
(`parent`,`name`,`text`,'2006-05-05',  `active`,`ip`) 
SELECT `id`,`parent`,`name`,`text`,`active`,`ip`
 FROM kino_actions_response 
WHERE `dates`='2006-04-09')

Код::

CREATE TABLE `kino_actions_response` (
  `id` int(11) NOT NULL auto_increment,
  `parent` int(11) NOT NULL default '0',
  `name` varchar(255) NOT NULL default '',
  `text` text NOT NULL,
  `dates` date NOT NULL default '0000-00-00',
  `active` enum('Y','N') NOT NULL default 'Y',
  `ip` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM;

-- 
-- Дамп данных таблицы `kino_actions_response`
-- 

INSERT INTO `kino_actions_response` VALUES (3, 1, '0', '111111', '2006-04-09', 'Y', '127.0.0.1');
INSERT INTO `kino_actions_response` VALUES (4, 1, '0', '0', '2006-04-09', 'Y', '127.0.0.1');
INSERT INTO `kino_actions_response` VALUES (5, 1, '0', '0', '2006-04-09', 'Y', '127.0.0.1');

Исправлено Stell Hawk (12.04.06 20:31)

Offline

#6  12.04.06 20:34

Re: [Mysql]КАК скопировать данные ?

Код::

INSERT INTO kino_actions_response(

`parent` ,
`name` ,
`text` ,
`dates` ,
`active` ,
`ip` 
)
SELECT `id` , `parent` , `name` , `text` , `dates` , `active` , `ip` 
FROM kino_actions_response
WHERE `dates` = '2006-04-09'

а так ругается #1066 - Not unique table/alias: 'kino_actions_response'

Offline

#7  12.04.06 20:38

Re: [Mysql]КАК скопировать данные ?

Код::

INSERT INTO kino_actions_response(

`parent` ,
`name` ,
`text` ,
`active` ,
`ip` ,
`dates` 
)
SELECT `parent` , `name` , `text` , `active` , `ip` , time( ) 
FROM kino_actions_response
WHERE `dates` = '2006-04-09' 

#1064 - You have an error in your SQL syntax.  Check the manual that corresponds to your MySQL server version for the right syntax to use near '()
FROM kino_actions_response 
WHERE `dates`='2006-04-09'' a

Offline

#8  12.04.06 21:35

Re: [Mysql]КАК скопировать данные ?

я структуру спрашивал из-за того, что куда тебе копировать? в туже самую таблицу или в другую... в любом разе структура таблиц должна совпадать...

попробуй так

Код: SQL:

INSERT INTO kino_actions_response(
 '',
`parent` ,
`name` ,
`text` ,
 NOW(),
`active` ,
`ip` 
)
SELECT * FROM kino_actions_response AS tf
WHERE tf.dates = '2006-04-09'

Offline

#9  12.04.06 22:02

Re: [Mysql]КАК скопировать данные ?

а кастрат поддерживает вообще такой синтаксис?

Offline

#10  13.04.06 10:15

Re: [Mysql]КАК скопировать данные ?

Jaguar, неа не пашет и вариации не пашут(

Offline

#11  13.04.06 12:15

Re: [Mysql]КАК скопировать данные ?

это из-за того, что с одной таблицей оперируешь... если хочешь чисто запросами, то надо тогда создавать временную таблицу... иначе тебе делать запрос на выборку, хранить в массиве, потом циклично добавлять...

вот так на сиквеле, например:

Код: SQL:

CREATE TEMPORARY TABLE tmp (
`date` date NOT NULL DEFAULT '2006-01-01',
`ip` char( 16 ) COLLATE koi8r_bin NOT NULL DEFAULT '192.168.0.1',
`cin` int( 255 ) UNSIGNED NOT NULL DEFAULT '0',
KEY `date` ( `date` , `ip` ) 
) ENGINE = MYISAM DEFAULT CHARSET = koi8r COLLATE = koi8r_bin;
INSERT INTO tmp SELECT * FROM test WHERE date='2005-06-09';
INSERT INTO test SELECT * FROM tmp;
DROP TABLE tmp;

Offline

#12  13.04.06 15:05

Re: [Mysql]КАК скопировать данные ?

Jaguar,ясно, значит будет как уже и сделал(((много запросов это плохо

Offline

#13  13.04.06 18:56

Re: [Mysql]КАК скопировать данные ?

как только люди не извращаются, лишь бы не юзать postresql :)

Offline

#14  15.04.06 16:34

Re: [Mysql]КАК скопировать данные ?

а ксати в psql это есть?или как
ЗЫ: я же пишу не для себя , каков хостинг такова и реализация))

Offline

#15  15.04.06 21:46

Re: [Mysql]КАК скопировать данные ?

Stell Hawk написал(а):

а ксати в psql это есть?

есть, там много всякого есть :))

Offline

Программирование и БД » [Mysql]КАК скопировать данные ? 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.338 сек.
Выполнено 11 запросов.