最近公司项目从Oracle向MySQL移植,遇到的第一个问题就是MySQL没有序列。 MySQL能够把字段设置为自增长,写法为: view plaincopy to clipboardprint?
create table test
(
id int auto_increment primary key
)
create table test
(
id int auto_increment primary key
) 自增字段只能是primary key,插入数据时自增字段不要设值或把值设成NULL就能实现自增长了。 view plaincopy to clipboardprint?
# INSERT INTO test (name) VALUES ("Gladiator");
# INSERT INTO test (id,name) VALUES (NULL,"The Bourne Identity");
# INSERT INTO test (name) VALUES ("Gladiator");
# INSERT INTO test (id,name) VALUES (NULL,"The Bourne Identity"); 但是这种自增长只能用于某个表的某个字段,要实现像oracle那样的序列功能要用到存储过程 view plaincopy to clipboardprint?
CREATE TABLE `seq` (
name varchar(20) NOT NULL,
val int(10) UNSIGNED NOT NULL,
PRIMARY KEY (name)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE FUNCTION seq(seq_name char (20)) returns int
begin
UPDATE seq SET val=last_insert_id(val+1) WHERE name=seq_name;
RETURN last_insert_id();
end
INSERT INTO seq VALUES("one",1000);
select seq("one"); Oracle查询两表相差的数据使用Xtrabackup备份MySQL数据库-相关资讯 mysql
- 数据库服务器 MySQL (08/15/2013 06:50:23)
- MySQL 5.6 GA 及逃亡潮 (02/08/2013 14:36:35)
- MySQL 5.5.22、5.1.62、5.0.96全线 (03/22/2012 19:03:49)
| - MySQL Administrator连接VMWare下 (05/24/2013 09:20:58)
- MySQL 5.1.68 发布 (02/05/2013 08:37:47)
- CentOS 5.2+MySQL+Heartbeat双机互 (01/29/2012 11:16:55)
|
本文评论 查看全部评论 (0)