[MySQL] Kopiowanie jednej tabeli do drugiej z dodatkowymi zmiennymi
dr_Ab Michal - 25-01-2006 15:35
[MySQL] Kopiowanie jednej tabeli do drugiej z dodatkowymi zmiennymi
Witam,
Moj problem polega na tym, ze do tabeli z piecioma kolumnami chce skopiowac tabele ktora ma 3 kolumny, a w pozostale dwie chcialbym wstawic jakas swoja wartosc, moj sposob nie zadzialal, a mianowicie:
INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) VALUES ('my_val1', 'my_val2', (SELECT fld_3, fld_4, fld_4 FROM old_tb));
Czy popelnilem jakis blad w skladni, czy moze jest to nie do zrealizowania jednym zapytaniem do bazy danych ?
Pozdrawiam i z gory dziekuje za pomoc, dr_Ab Michal
HERAKLES - 25-01-2006 15:35
dr_Ab Michal wrote:
> Witam, > > Moj problem polega na tym, ze do tabeli z piecioma kolumnami chce > skopiowac tabele ktora ma 3 kolumny, a w pozostale dwie chcialbym > wstawic jakas swoja wartosc, moj sposob nie zadzialal, a mianowicie: > > INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) > VALUES ('my_val1', 'my_val2', (SELECT fld_3, fld_4, fld_4 FROM old_tb));
INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) SELECT 'my_val1'::text as fld_1, 'my_val2'::text as fld_2, fld_3, fld_4, fld_4 FROM old_tb;
Mateusz Swatek - 25-01-2006 15:35
dr_Ab Michal napisał(a): > Witam, > > Moj problem polega na tym, ze do tabeli z piecioma kolumnami chce > skopiowac tabele ktora ma 3 kolumny, a w pozostale dwie chcialbym > wstawic jakas swoja wartosc, moj sposob nie zadzialal, a mianowicie: > > INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) > VALUES ('my_val1', 'my_val2', (SELECT fld_3, fld_4, fld_4 FROM old_tb));
INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) ( select 'my_val1', 'my_val2', fld_3, fld_4, fld_4 FROM old_tb)
-- Mateusz
dr_Ab Michal - 25-01-2006 15:35
HERAKLES napisal(a):
Witam,
>>INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) >>VALUES ('my_val1', 'my_val2', (SELECT fld_3, fld_4, fld_4 FROM old_tb)); > > > INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) > SELECT 'my_val1'::text as fld_1, 'my_val2'::text as fld_2, fld_3, fld_4, > fld_4 FROM old_tb; >
na logike dobry przyklad, ale niestety moj mysql go nie przyjmuje, czy mozliwe ze takie operacje dostepne sa tylko w wyzszych wersjach niz moja (MySQL 4.1.11) ?
Blad taki dostaje: "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 '::text as fld_1, ...' at line 1"
Pozdrawiam, dr_Ab Michal
HERAKLES - 26-01-2006 11:01
dr_Ab Michal wrote:
> HERAKLES napisal(a): > > Witam, > >>>INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) >>>VALUES ('my_val1', 'my_val2', (SELECT fld_3, fld_4, fld_4 FROM old_tb)); >> >> >> INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) >> SELECT 'my_val1'::text as fld_1, 'my_val2'::text as fld_2, fld_3, fld_4, >> fld_4 FROM old_tb; >> > > na logike dobry przyklad, ale niestety moj mysql go nie przyjmuje, czy > mozliwe ze takie operacje dostepne sa tylko w wyzszych wersjach niz moja > (MySQL 4.1.11) ? > > Blad taki dostaje: > "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 '::text as fld_1, ...' at line 1" > > Pozdrawiam, > dr_Ab Michal INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) SELECT 'my_val1' as fld_1, 'my_val2' as fld_2, fld_3, fld_4, fld_4 FROM old_tb; w zasadzie to as też nei jest potrzebne ale bardziej elegancko wygląda.
dr_Ab Michal - 27-01-2006 10:47
dr_Ab Michal napisał(a):
> Moj problem polega na tym, ze do tabeli z piecioma kolumnami chce > skopiowac tabele ktora ma 3 kolumny, a w pozostale dwie chcialbym > wstawic jakas swoja wartosc, moj sposob nie zadzialal, a mianowicie:
Dziekuje kolegom za pomoc, w koncu sie udalo.
Pozdrawiam, Michal Drab
dr_Ab Michal - 30-01-2006 10:31
Mateusz Swatek napisał(a):
> INSERT INTO new_tb (fld_1, fld_2, fld_3, fld_4, fld_5) > ( select 'my_val1', 'my_val2', fld_3, fld_4, fld_4 FROM old_tb)
Jeszcze jeden problem mi wyskoczyl.
UPDATE new_tbl SET new_val = (SELECT SUM(old_val) FROM old_tbl);
Zarowno old_val jak i new_val są typu DECIMAL(10,4). W wyniku takiego zapytania dostaje moj ulubiony blad: "You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use" :)
Pozdrawiam, dr_Ab Michal
zanotowane.pldoc.pisz.plpdf.pisz.pleffulla.pev.pl
|
[mysql] =?ISO-8859-2?Q?Za=E6mienie=2E=2E=2E_jak_wy=B6wietli=E6?==?ISO-8859-2?Q?=2E=2E=2E?=
[mysql] =?ISO-8859-2?Q?wielko=B6=E6_bazy_a_stabilno=B6=E6=2C?==?ISO-8859-2?Q?_podzia=B3_du=BFej_bazy_a_powi=B1zania_tabel?=
[MySQL] =?ISO-8859-2?Q?Wy=B6wietlenie_kolejnej_pozycji=2C_?==?ISO-8859-2?Q?jak=B1_mia=B3by_dany_rekord=2C_gdybym_czyta=B3 _?==?ISO-8859-2?Q?wg_konkretnych_kryteri=F3w=2E_Da_si=EA_=3F?=
[mysql 4.0.x] przenoszenie kolum =?ISO-8859-2?Q?mi=EAdzy_bazam?==?ISO-8859-2?Q?i_cd_=2E=2E=2E_?=
Gdzie MySQL 4.1, a gdzie 5.0?
[MySQL 4.0...4.1] zabezpieczenie przed =?ISO-8859-2?Q?jednoczesn?==?ISO-8859-2?Q?=B1_edycj=B1?=
[MS SQL] "set names" (mySQL) w MS SQL
[mysql 5.x] jak =?ISO-8859-2?Q?zrealizowa=E6_zapytanie=3F_cz?==?ISO-8859-2?Q?yli_podzapytanie_i_wi=EAcej_ni=BF_jeden_rz=B1? ==?ISO-8859-2?Q?d_wynik=F3w?=
[MySQL] Czy da =?ISO-8859-2?Q?si=EA_wykonac_takie_powi=B1z?==?ISO-8859-2?Q?anie_mi=EAdzy_tabelami=2C_i_jak_to_odpyta=E6_? ==?ISO-8859-2?Q?=3F?=
Import za =?ISO-8859-2?Q?pomoc=B1_EMS_Data_Import_for_?==?ISO-8859-2?Q?MySQL_-_polskie_litery=2E?=
zanotowane.pldoc.pisz.plpdf.pisz.plmelooonka.opx.pl
Cytat
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona |
|