mysql 序列问题... mysql不像oracle那样需要单独创建sequence但也提供了2种方法来实现,第一种是auto_increment属性第二种方法是单独建一张表来维护这些值...请教下这2种方法在维护数据库方面的优劣,假设每个表的序列都是独立的... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 oracle里面的sequence,其实这样要自己每次调用nextval来取值,而在mysql里更方便,因为你可以直接利用mysql里面的auto_increment设置列就可以了,一样的功能。 但是NUMERIC类型的字段不能使用auto_increment属性原来oracle的脚本中数字类型全部使用的NUMBER,转成mySQL应该对应为NUMERIC如果要使用auto_increment属性的话,必须是int类型,而int类型最大支持 2147483647不知道bigint支不支持,稍后试一下... oracle里面用NUMBER定义,一般这样 NUMBER(20)等等,这个就表示整型啦对应可以用mysql下的int或bigint等 bigint使用中和int有什么区别么?毕竟bigint是mysql扩展的,不是标准SQL数据类型?number(10)可以转换成int(10)么?int(10)的上限貌似没有number(10)大 如无特殊原因,一般来说,应该直接使用 auto_increment(某些特殊情况,比如两个表共用一个 序列号,则只能用第二种方法了)可以是 bigint, mysql> create table t1 (id bigint primary key auto_increment,f1 int);Query OK, 0 rows affected (0.08 sec) 刚试了一下bigint 确实可以使用auto_increment属性大概是看习惯了int,所以看到smallint或者tinyint之类的类型时总会觉得奇怪...这也算是一种歧视么 哈哈 浮点数也可以mysql> create table t2 (id DOUBLE primary key auto_increment ,f1 int);Query OK, 0 rows affected (0.08 sec)mysql> 真奇怪...为啥只有NUMERIC不能用auto_increment属性... = =考虑使用bigint 用BIGINT吧,可以 支持到 18446744073709551615 decimal / numeic 其实在存储上并不是数字,是一种结构。估计因为这个原因无法使用 auto_increment. 那个是unsigned的默认的话是到 -9223372036854775808~9223372036854775807声明unsigned的一个缺点就是如果有外键引用该列的时候,子表对应的列值也要声明成unsigned属性所以还是默认吧 谢谢vinsonshen和ACMAIN_CHM 更新表时产生主键冲突,合并成一条 在MySql中怎么不能插入汉中呢 数字和字母都可以 就是汉中不行 我用的是Navicat for Mysql IT民工深夜求SQL查询语句,大大们求救 求助个位,mysql统计年度月销售 请问有什么会影响MYSQL的排序 数据类型转换(在线等)? 怎么写这样的SQL语句?很难!! 怎样启动mysql服务,而不在windows系统托盘中显示图标? 怎么打开mysql中的缓冲区呀? 求一个初级的SQL语句 ACMAIN_CHM 看到此帖后,联系我。 mysql 时间问题
你可以直接利用mysql里面的auto_increment设置列就可以了,一样的功能。
对应可以用mysql下的int或bigint等
number(10)可以转换成int(10)么?int(10)的上限貌似没有number(10)大
(某些特殊情况,比如两个表共用一个 序列号,则只能用第二种方法了)可以是 bigint, mysql> create table t1 (id bigint primary key auto_increment,f1 int);
Query OK, 0 rows affected (0.08 sec)
mysql> create table t2 (id DOUBLE primary key auto_increment ,f1 int);
Query OK, 0 rows affected (0.08 sec)mysql>