Maison > base de données > tutoriel mysql > le corps du texte

MySQL序列解决方案

WBOY
Libérer: 2016-06-07 16:55:39
original
826 Les gens l'ont consulté

最近公司项目从Oracle向MySQL移植,遇到的第一个问题就是MySQL没有序列。 MySQL能够把字段设置为自增长,写法为: view plaincop

最近公司项目从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'); 

linux

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal