On Sun, 18 Jun 2006 00:23:58 -0400, David D Speck wrote: >Please pardon what may be a rank newbie question, but I'm just starting >with SQL and have not seen this addressed in the tutorials that I've >studied.
>I have to compile a single name and address list from many small list >files. It is likely that many of the names will be present in more than >one input list, but I only want to have one copy of them in the master >SQL table. >What would the most elegant way be to insert a name and address entry >into the main table ONLY if it is not already there? I could see doing >a SELECT WHERE lname = new_lname AND fname = new_fname, AND street = >new_street, etc, and then aborting the INSERT if the SELECT returns a >match. >I just wondered if there was a neater way to accomplish this? You could declare each column in the table to be UNIQUE and let the database report each duplicate. For example: SQLite version 3.3.6 Enter ".help" for instructions sqlite>create table test ( ...>lname varchar(60) unique, ...>fname varchar(60) unique, ...>street varchar(60) unique); sqlite>insert into test values ('a', 'b', 'c'); sqlite>insert into test values ('a', 'b', 'c'); SQL error: column street is not unique sqlite> In a program, you might want to catch the error and report it.