Create en insert in 1 statement

  • Onderwerp starter Onderwerp starter giten
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

giten

Gebruiker
Lid geworden
2 feb 2009
Berichten
80
Hallo,

Is het mogelijk om een create en insert in 1 sql-statement te zetten?

En is het mogelijk om meerdere update query's in 1 statement? Dus met verschillende 'set' en verschillende 'where'.

Bedankt!


Giten
 
Laatst bewerkt:
"Create" als in "create table"? dat zijn niet echt dingen die je door een script wil laten doen... die doe je van tevoren over het algemeen.

Maar nee, je kunt niet create en insert tegelijk doen.

Je kun ook niet meerdere updates doen met verschillende Set en Where, die zul je gewoon los moeten runnen.
 
Kan aan mij liggen maar dit lijkt mij toch gewoon te werken.

PHP:
$query = "INSERT INTO tabel1 VALUES ('waarde1', 'waarde2'); INSERT INTO tabel2 VALUES ('waarde3', 'waarde2')";
$result = mysql_query($query);
Zolang je de delimiter ";" gebruikt kunt je de queries achter elkaar zetten meende ik.

Hangt natuurlijk wel van je toepassing af. Het is niet altijd handig om het zo te doen.

Wanneer je een installatie-script wilt maken kan het wel handig zijn.
 
Ja maar dat zijn gewoon 2 queries :P

Dat PHP ze allebei uitvoert, wil nog niet zeggen dat ze 1 query zijn geworden.
 
Das waar, dan heb ik de vraag verkeerd gelezen :)

Of wanneer de vraag is of je meerdere queries in 1x zou kunnen uitvoeren, dan heb ik hierboven het antwoord gegeven :p
 
Kan aan mij liggen maar dit lijkt mij toch gewoon te werken.

PHP:
$query = "INSERT INTO tabel1 VALUES ('waarde1', 'waarde2'); INSERT INTO tabel2 VALUES ('waarde3', 'waarde2')";
$result = mysql_query($query);
Zolang je de delimiter ";" gebruikt kunt je de queries achter elkaar zetten meende ik.

Hangt natuurlijk wel van je toepassing af. Het is niet altijd handig om het zo te doen.

Wanneer je een installatie-script wilt maken kan het wel handig zijn.

Bedankt. Werkt dit ook met sql van access?

Het gaat om een aantal korte query's die ik niet allemaal in een aparte query wil zetten, maar voor het overzicht samen. Ze moeten toch altijd na elkaar worden uitgevoerd. Dit zijn 2 van die query's:


UPDATE Tabel1 INNER JOIN Tabel2 ON [Tabel1].[veld1]=[tabel2].[veld1] SET tabel1.veld2 = [tabel2].[veld2]
WHERE (([tabel2].[veld3])="v");

UPDATE Tabel1 INNER JOIN Tabel2 ON [Tabel1].[veld1]=[tabel2].[veld1] SET tabel1.veld2 = [tabel2].[veld4]
WHERE (([tabel2].[veld5])="v");
 
Geen idee, ik ben niet bekend met de syntax van Access
 
Inderdaad lijkt het erop dat je niet meerdere queries in 1 query kan zetten (wat vrij logisch lijkt), zie http://en.allexperts.com/q/Using-MS-Access-1440/multiple-SQL-statements-separator.htm

Je kan trouwens wel 1 query maken van die update-statements, iets als
UPDATE Tabel1 INNER JOIN Tabel2 ON [Tabel1].[veld1]=[tabel2].[veld1]
SET tabel1.veld2 = CASE WHEN [tabel2].[veld3]="v"
THEN [tabel2].[veld2]
WHEN [tabel2].[veld5]="v"
THEN [tabel2].[veld4]
ELSE 'Something is going wrong'
WHERE [tabel2].[veld3]="v"
OR [tabel2].[veld5]="v"

Maar zo heel mooi is dat niet, oa omdat je dan in je where de condities van al je updates moet bewaren.

Om terug te komen op de oorspronkelijke vraag: ja, dit is volgens mij in specifieke gevallen best wel mogelijk.
CREATE TABLE table_name as (SELECT bla FROM Andere_Tabellen);
 
create en insert met "select into" statement:

The SELECT INTO statement creates a new table and populates it with the result set of the SELECT statement. SELECT INTO can be used to combine data from several tables or views into one table.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan