WEB开发网
开发学院数据库MySQL Mysql入门系列:MYSQL解决方案随笔 阅读

Mysql入门系列:MYSQL解决方案随笔

 2006-12-31 10:46:19 来源:WEB开发网   
核心提示: CREATE TABLE counter(count INT UNSIGNED,name varchar(255) NOT NULL PRIMARY KEY)其中计数器名为一个串,从而可以调用任何想要的计数器,Mysql入门系列:MYSQL解决方案随笔(6),我们将其定义为PRIMARY

CREATE TABLE counter

(

count INT UNSIGNED,

name varchar(255) NOT NULL PRIMARY KEY

)

其中计数器名为一个串,从而可以调用任何想要的计数器,我们将其定义为PRIMARY KEY 以免名称重复。这里假定使用这个表的应用程序知道他们将使用的名称。对于前面所说的Web 计数器,可通过利用文件树中每个页面的路径名作为其计数器名的方法,保证计数器名的唯一性。例如,要为站点的主页建立一个新计数器,可执行下列语句:

INSERT INTO counter(name) VALUES("index.html")

它用零值初始化称为“ index.html”的计数器。为了生成序列中的下一个值,增加表中相应行的计数值,然后用LAST _ INSERT_ID( ) 检索它:

UPDATE counter

SET count = LAST_INSERT_ID(count+1)

WHERE name = "index.html"

SELECT LAST_INSERT_ID()

另一种方法是不用LAST _ INSERT_ID( ) 增加计数器的值,如下所示:

UPDATE counter SET count = count+1WHERE name = "index.html"

SELECT count FROM counter WHERE name = "index.html"

然而,如果另一个客户在您发布UPDATE语句与SELECT 语句之间增加了该计数器的值,则这种方法工作不正常。不过可在此两条语句的前后分别放置LOCK TABLES 和U N L O C KTABLES,在您使用该计数器时阻塞其他客户,以解决上述问题。但用L A S T _ INSERT_ID( )方法完成同样的工作更为容易一些。因为它的值是客户专用的,您总能得到自己插入的值,而不是其他客户插入的值,而且不必阻塞其他客户使代码复杂化。

3.8.8 检查表是否存在

在应用程序内部知道一个表是否存在有时很有用。为了做到这一点,可使用下列任一条语句:

SELECT COUNT(*) FROM tb1_name

SELECT * FROM tb1_name WHERE 1=0

如果指定的表存在,则上述两条语句都将执行成功,如果不存在,则都失败。它们是这种测试的很好的查询。它们执行速度快,所以不会费太多的时间。这种方法最适合您自己编写的应用程序,因为您可以测试查询的成功与失败并采取相应的措施。但在从mysql运行的批量脚本中不特别有用,因为发生错误时除了终止运行外不可能做任何事(或者可以忽略相应的错误,但是显然无法再运行该查询了)。

查看全套"Mysql入门系列教程 ">>>>>

上一页  1 2 3 4 5 6 

Tags:Mysql 入门 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接