Jump to content

Archived

This topic is now archived and is closed to further replies.

barkster

Insert Ignore??

Recommended Posts

I have table called email with fields EmailID(Primary Key), Email, and Remove.  I only want to insert new records where Email does not exists.  I can't figure out how to do it.  I changed Email to a primary key but I guess because it is text this insert doesn't work.  How can I insert only if Email is unique?  Thanks

INSERT IGNORE INTO Emails (Email,Remove) VALUES ('test@domain.com','1')

Share this post


Link to post
Share on other sites
rather than changing email to a primary key, you just need to make it a UNIQUE constraint. then, the SQL will return an error if you try to insert one that already exists. otherwise, you need to check it with PHP first:
[code]
<?php
$sql = mysql_query("SELECT * FROM emails WHERE email = '$email'");
if (mysql_num_rows($sql) == 0) {
  // no records yet, so insert it
  mysql_query("INSERT INTO emails (email, remove) VALUES ('$email', '1')");
}
?>
[/code]

hope this helps

Share this post


Link to post
Share on other sites
Thanks that is actually how I was doing it just thought I could do it somehow with one statement.  Thanks!

Share this post


Link to post
Share on other sites
I don't see why INSERT IGNORE wouldn't work, once you had the UNIQUE index.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.