对数据库的帮助很小,并且有以下代码:
$result = mysql_query("select * from mydatabase");
if ( ! mysql_num_rows($result)) {
mysql_query("INSERT INTO `mydatabase
" somedata"等,...
如果在插入上一个结果的同一分钟加载时,如何将其设置为停止?
答案 0 :(得分:1)
限制此问题的最简单方法是在专门用于此目的的列上创建UNIQUE
索引。通常将UNIX time value除以60将产生合适的分钟索引。
这可以安全地存储在INT
类型列中。然后你可以做一个常规INSERT
,如果由于该列上的键冲突而失败,你可以忽略它。甚至INSERT IGNORE
选项也可自动执行此操作。
例如:
CREATE TABLE by_minute (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255),
minute INT,
UNIQUE KEY `index_by_minute_minute` (`minute`)
);
INSERT IGNORE INTO by_minute (name, minute) VALUES ('test1', 23730990);
INSERT IGNORE INTO by_minute (name, minute) VALUES ('test2', 23730990);
INSERT IGNORE INTO by_minute (name, minute) VALUES ('test3', 23730991);
这应该只允许插入test1
和test2
行。
您还可以使用FLOOR(UNIX_TIMESTAMP(NOW()) / 60)
代替计算出的minute
值。