80 votes

SQlite : select into ?

Je ne sais pas si je peux utiliser select into pour importer des données d'un autre tableau comme celui-ci :

select * into
  bookmark1 
from bookmark;    

Est-il vrai que SQlite ne supporte pas cette syntaxe ? Existe-t-il d'autres alternatives ?

185voto

vit Points 1444

Vous pourriez le faire :

create table bookmark1 as select * from bookmark;

2 votes

Désolé, je ne peux pas donner de point de vue parce que je suis nouveau, mais votre suggestion fonctionne bien. Merci =)

3 votes

Réponse parfaite, concise et pertinente. +1 et beaucoup de félicitations.

0 votes

Y a-t-il un moyen de faire fonctionner ceci dans deux situations, lorsque la table existe déjà (écraser) et lorsqu'elle n'existe pas (créer une nouvelle table) ?

50voto

Nick Dandoulakis Points 26809

Vous pouvez essayer cette requête :

insert into bookmark1 select * from bookmark

12 votes

Cela suppose que bookmark1 existe déjà, alors que select into crée une nouvelle table.

0 votes

@vit, oui bien sûr. C'est pour le cas où nous voulons importer à nouveau dans une table.

0 votes

@Nick : Je suis sûr que vous le savez, j'ai juste pensé que cela devait être clair pour tous ceux qui pourraient tomber sur cette question plus tard :)

23voto

neo Points 1936

Je suppose que bookmark1 est une nouvelle table que vous avez créée et qui est identique à la table bookmark. Dans ce cas, vous pouvez utiliser le format suivant.

CREATE TABLE bookmark1 AS SELECT * FROM bookmark;

Vous pouvez également utiliser l'instruction d'insertion avec une sous-requête. Pour les différentes options de l'instruction d'insertion, reportez-vous : SQL tel que compris par SQLite

11voto

create table NewTable as
select * from OldTable where 1 <> 1

Ceci copiera la structure des données pour vous.

1 votes

C'est très astucieux.

0 votes

Intégrez ce SQL dans un bloc d'essai (ou une construction équivalente) dans le langage de programmation de votre choix.

1voto

JeeyCi Points 1

MAIS soyez prudent : "Créer une table à partir d'une autre table de cette façon n'enregistre pas les types de données des champs de la nouvelle table comme ils l'étaient dans la table source, donc je préférerais créer une table avec une déclaration séparée et une déclaration d'insertion dans la table également à faire séparément - comme mentionné ci-dessus :

insert into bookmark_backup select * from bookmark;"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X