Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL]Insert into select
kanji
post
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 27.06.2005
Skąd: Opole

Ostrzeżenie: (0%)
-----


Witam!

siedzę na taki problemem mam tabele np. dane oraz historia_dane. Tabele są podobne, ponieważ tabela historia_dana ma dodatkowo 2 wiersze tj. data_zmiany oraz przez kogo ta zmiana została zrobiona. Problem mam z poniższym zapytaniem:

  1. INSERT INTO historia_dane ('select * from dane where cos=czemu', 'data', 'jakies_id')


i problem jest taki że wyskakuje mi bład: #1136 - Column count doesn't match value count at row 1
Również próbowałem na inne sposoby np

  1. INSERT INTO historia_dane(a,b,c,d,e,DATA,jakies_id) VALUES('select a,b,c,d,e form dane where cos=czemus', 'data', 'jakies_id')


a najlepsze jest to ze jak zrobilem dla testu zapytanie:
  1. INSERT INTO historia_dane(c,DATA,jakies_id) VALUES('selec c from dane where cos=czemus','data','jakies_id')

To zadziałało poprawnie. Problem jest jak chcę wszystkie wiersze przepisać. W tabeli dane mam jedno pole primary kay oraz jedno uniq. W historia_dane nie mam żadnego indexu gdzyż tam nie jest mi on potrzebny.

Gdzie robię błąd? Z góry dzięki za pomoc smile.gif


--------------------
:: don't you know, I'm LoCo
Go to the top of the page
+Quote Post
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(kanji @ 17.03.2010, 14:10:34 ) *
a najlepsze jest to ze jak zrobilem dla testu zapytanie:
  1. INSERT INTO historia_dane(c,DATA,jakies_id) VALUES('selec c from dane where cos=czemus','data','jakies_id')

To zadziałało poprawnie.

Przecież to nie ma prawa zadziałać! Do kolumny "c" pakujesz zapytanie w postaci stringa, a nie wartości.

Spróbuj tego:
  1. INSERT INTO historia_dane(c,DATA,jakies_id) SELECT c, DATA, jakies_id FROM dane WHERE cos=czemus
Go to the top of the page
+Quote Post
kanji
post
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 1
Dołączył: 27.06.2005
Skąd: Opole

Ostrzeżenie: (0%)
-----


pola data i jakieś_id są to dodatkowe pola na końcu tabeli historia_dane. Ten sposób co podałem działa. Problem pojawia się jak chce więcej wierszy z tabeli dane :/

Ten post edytował kanji 17.03.2010, 14:55:24


--------------------
:: don't you know, I'm LoCo
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 08:36