[转]MySql中创建序列的方法

CREATE TABLE `my_seq` (  
  `seq` int(10) NOT NULL default 10000
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;

要保证下面的两句sql是在同一个conn下执行:
update   my_seq   set   seq   =   last_insert_id(seq+1); 
select   last_insert_id();

这样就可以达到跟oracle的sequence一致的效果。即使在update之后,select之前有其它session也update了,本session得到的,仍然是自己update的那一个值!

摘自下面的论坛:
http://topic.csdn.net/t/20060313/00/4609996.html

时间: 2024-10-21 18:17:15

[转]MySql中创建序列的方法的相关文章

Mysql中创建序列的方法

CREATE TABLE emp_seq ( seq VARCHAR(8)); INSERT INTO emp_seq VALUES('0'); UPDATE emp_seq SET seq = LAST_INSERT_ID(seq+1); SELECT LAST_INSERT_ID(); 这东西完全跟oracle的sequence一致.即使在update之后,select之前有其它session也update了,本session得到的,仍然是自己update的那一个值. 上面的语句在orcle

SHELL中创建临时文件的方法

有时候,我们需要创建文件临时存放一些输出的信息,创建文件时就可能出现文件名存在的问题.如何创建唯一的文件名,Linux为我们提供几个方案: 1.mktemp(强烈推荐) The  mktemp  utility takes the given filename template and overwrites a portion of it to create a unique filename.  The template  may  be  any filename  with  some  

MySql中创建存储过程

MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库时(例如 PHP),要组织很多 SQL 语句.特别是业务逻辑复杂的时候,一大堆的 SQL 和条件夹杂在 PHP 代码中,让人不寒而栗.现在有了 MySQL 存储过程,业务逻辑可以封装存储过程中,这样不仅容易维护,而且执行效率也高. 一.MySQL 创建存储过程 "pr_add" 是个简单的

mysql中的序列

(1)首先mysql的自增长"序列"和序列是两回事,mysql本身不提供序列机制. (2)mysql的AUTO_INCREMENT可以设置起始值,但是不能设置步长,其步长默认就是1. (3)mysql一个表只能有一个自增长字段.自增长只能被分配给固定表的固定的某一字段,不能被多个表共用.并且只能是数字型. (4)在历史表和数据迁移时,经常会遇到自增主键重复的问题. (5)自增主键往往是没意义的. 在下列情况下可能你需要使用序列: (1)业务复杂,你需要高度定制和控制主键(自增主键只能是

mysql 中创建存储过程

mysql中创建存储过程和存储函数虽相对其他的sql语言相对复杂,但却功能强大,存储过程和存储函数更像是一种sql语句中特定功能的一种封装,这种封装可以大大简化外围调用语句的复杂程度. 首先以表employee为例写一个简单的sql存储过程: 下边通过创建一个存储过程实现:输入性别,找出与输入性别相匹配的人的平均年龄,并将平均年龄输出. 这里首先通过delimiter &&,将sql语句的结束符换成&&(默认sql语句的结束符是;) 然后如下所示输入: 此时可以把语句的结束

EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型

官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新的数据库,我们首先在appsettings.json文件夹中,使用json对来给出mysql数据库连接语句,其次在 Startup.cs中使用MySql的中间价来注入MySql服务,在这里,我使用的MySql驱动是Pomelo.EntityFramoworkCore.MySql.新建一个类,用来做数

MySQL下创建序列及创建自定义函数方法介绍

工作过程中需要将基于DB2数据库的应用以及数据迁移到MySQL中去,在原应用中,大量使用了SEQUENCE,考虑尽量减少代码的修改,决定在迁移后的应用中继续保留SEQUENCE的使用,这就要求在MySQL中寻找替代SEQUENCE的解决方案. 在DB2中创建一个SEQUENCE的方法如下: DROP SEQUENCE TRZ_MEMBER.SEQ_TRZ_MEMBER_NO; CREATE SEQUENCE TRZ_MEMBER.SEQ_TRZ_MEMBER_NO AS BIGINT INCRE

MySQL中所有表的方法

MySQL删除数据库中所有表的方法: -- 切换到要删除表的数据库 USE REPLACE_WITH_DATABASE_NAME_YOU_WANT_TO_DELETE; -- 删除所有表 SET FOREIGN_KEY_CHECKS = 0; SET GROUP_CONCAT_MAX_LEN=32768; SET @tables = NULL; SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables   FROM information_sc

MySQL中多表删除方法(转载)

如果您是才接触MySQL数据库的新人,那么MySQL中多表删除是您一定需要掌握的,下面就将为详细介绍MySQL中多表删除的方法,供您参考,希望对你学习掌握MySQL中多表删除能有所帮助. 1.从MySQL数据表t1中把那些id值在数据表t2里有匹配的记录全删除掉 DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id 2.从MySQL数据表t1里在数据表t2里没有匹配的记录查找出来并