On Wednesday 24 August 2005 02:47 am, Hal Vaughan wrote:
> I may have a misunderstanding of this, but as I have been told, if I have a
> table with 3 columns, Idx (an Index column, unique, auto-increment), Name,
> Value (both varchar), and I try a command like this:
>
> INSERT IGNORE INTO myTable SET Name = "Variable1", Value = "100";
> or
> INSERT IGNORE INTO myTable (Name, Value) VALUES("Variable1", "100");
>
> AND I already have a row with the matching Name and Value columns matching
> in value, that MySQL will detect that and not insert the redundant values. 
> I've also tried this without a unique, auto-increment column, just trying
> to insert by specifying values for all 3 columns that already match an
> existing row, and it still doesn't work.
>
> I thought the IGNORE keyword was intended to be used to prevent duplicating
> values, and that it matched the values in the INSERT statement (even if not
> all columns in the table were given a value) against the ones in the table
> and would NOT INSERT the row if it matched.
>
> I'm using MySQL 4.023 on Debian Linux (installed through apt-get, not
> through downloading).
>
> So this brings up a few questions: 1) Am I doing something wrong?  2) Is
> this what INSERT IGNORE is supposed to do -- if not, what does it do?, and
> 3) If this isn't what INSERT IGNORE does, how can I do what I *thought* it
> did -- insert only if the value doesn't already exist?
>
> Thanks!
>
> Hal

Okay, so INSERT IGNORE only works if I am avoiding duplicate keys.  Is there  
any way to use INSERT the way I thought INSERT IGNORE worked -- in other 
words is there any keyword for the INSERT command to keep it from duplicating 
rows if there isn't a key?

Hal

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to