我有一个查询将数据从多个从表传输到单个主表中。以下是我的一个查询示例:
$insert = mysql_query("
INSERT IGNORE INTO master (title, description, keywords, url, uniqueid, city, state, zip, datetime, expiretime)
SELECT title, description, keywords, url, uniqueid, city, state, zip, datetime, expiretime
FROM slave1 WHERE zip IS NOT NULL AND keywords IS NOT NULL AND city IS NOT NULL") or die(mysql_error());
运行此查询后,数据行将插入master
部分或全部字段 NULL
,我将其指定为NOT NULL
(字段为zip
,keywords
和city
)
似乎mysql完全忽略了IS NOT NULL
参数。有谁知道解决方案?
答案 0 :(得分:2)
尝试将zip IS NOT NULL
替换为TRIM(zip) <> ""
答案 1 :(得分:0)
我怀疑 uniqueid 是主键。可能,您的主表已包含具有相同键的行,其中包含 city 的空值等。在这种情况下,您应该使用REPLACE而不是INSERT IGNORE。