2010-08-07 28 views
1

Je suis relativement nouveau à SQL, donc j'avais une question sur l'insertion.Comment insérer X nombre de lignes au début d'une table de données préexistante dans sqlite

J'ai un tableau de données que j'ai besoin d'importer au-dessus de le contenu existant d'une autre table. Par exemple, la table que j'apporte a 100 lignes, et la table que je mets les données en a 100.

Je dois faire la table que j'amène de nouvelles données en avoir 200 lignes, et avoir le premier 100 lignes vides (donc je peux mettre à jour ces lignes avec mon nouveau contenu).

Y at-il un moyen facile de le faire que je suis juste manquant? Merci de votre aide!! Considérer que la base de données est juste un magasin de données.

Répondre

2

Comment il est commandé devrait être à la hauteur du client ou de l'appelant. Habituellement, le meilleur moyen de cela est avec la clause ORDER BY lorsque SELECT ing.

Donc, je suggère de ne pas s'inquiéter de la façon dont le SGBDR stocke les données, mais comment il est extrait.

Il existe probablement une colonne ou un attribut que vous vous concentrez sur le maintien/le maintien de l'ordre. Peut-être que c'est une date ou un numéro? Pensez à utiliser cette colonne dans votre ORDER BY, et n'oubliez pas que vous pouvez utiliser plus d'une colonne dans votre commande.

Nous ne devrions pas compter sur la façon dont les données sont stockées pour la présentation ultérieure.

/* use SQLite's current_time to save when these records were created*/ 
INSERT INTO MyTable (Foo, Bar, CreatedOn) 
    SELECT Foo, Bar, current_time 
    FROM OtherTable 
+0

C'est vrai. Même si vous insérez d'abord des enregistrements, il n'y a aucune garantie qu'en interne, la base de données les ait classés en premier sur le disque dur ... (c'est pourquoi les index doivent être reconstruits occasionnellement.) La commande est uniquement déterminée au moment de la récupération des données. – David

+0

C'est un très bon point, je n'ai même pas pensé à ça ... merci! – Steven