MYSQL插入引用主行的行

时间:2010-05-20 03:44:50

标签: mysql

我正在将访问日志转移到数据库中。

我有两张桌子:

urlRequests
id : int(10)
host : varchar(100)
path: varchar(300)
unique index (host, path)

urlAccesses
id : int(10)
request : int(10) <-- reference to urlRequests row
ip : int(4)
query : varchar(300)
time : timestamp

我需要为每个页面加载在urlAccesses中插入一行,但是urlRequests中的第一行必须与请求的主机和路径一起存在,以便urlAccesses的行可以引用它。

我知道我可以这样做:

一个。检查urlRequests中是否存在行 B.如果需要,在urlRequests中插入一行 C.在urlAccesses中插入一行,其中urlRequests的行标识为

如果urlRequests行不存在,那么每个页面加载会有三个查询。 我对MySQL很新,所以我猜测有一种方法可以更快地使用更少的查询。

1 个答案:

答案 0 :(得分:0)

尝试 INSERT IGNORE 在url请求中插入行,而不检查是否存在先前的行。 然后将the last inserted id转到第二个插页。