2009-10-14 17 views

Odpowiedz

16

Zmiana wkładki do wyglądać następująco:

insert into sample_elements (name,position,ownerel) select 'Namespace1',id,0 from sample_elements where name='Namespace1'; 

Zasadniczo zamiast używać wartości używać tylko select i wstawić wartości harcoded jako kolumny

2

myślę, że można to zrobić. Możesz użyć:

INSERT INTO table (..fields) SELECT ..fields.. FROM table; 
0

Nie znam mysql, ale czy możesz spróbować następujących rzeczy?

insert into sample_elements select name, id, 0 from sample_elements where name='Namespace1' 
0

Nie jestem pewien. Myślę, że ta wstawka wewnątrz wybierz do znalezienia już istnieje lub w jakim celu.

Dzięki

-1

tu jest inny format, który będzie działać, używając „Ustaw” skonstruować. Wolę ten format dla większości moich SQL, ponieważ nazwy pól są sparowane z wartościami - sprawia, że ​​konserwacja jest znacznie łatwiejsza niż listy pól/wartości, które zależą całkowicie od pozycjonowania.

INSERT INTO sample_elements SET 
name = 'Namespace1', 
position = (SELECT id FROM sample_elements WHERE name='Namespace1'), 
ownere1 = 0; 
+0

-1 To rozwiązanie nie działa dla MySQL, którego wyraźnie używa OP. Zobacz tę odpowiedź: http://stackoverflow.com/a/14302701/998919 – fgblomqvist

+0

to działa na mySQL, tam go użyłem. Wyjaśnij, gdzie/jak to nie działa, ponieważ myślę, że znajdziesz w nim swoją implementację/wersję/sterownik, a nie mySQL. pozdrowienia –

+0

Już sprecyzowałem, sprawdź odpowiedź, którą podłączyłem. Proszę podać wersję bazy danych MySQL, której próbujesz przynajmniej. – fgblomqvist

Powiązane problemy