--增加备份字段alter Table tableName add columnNameBak bigint ; --将主键自增字段 赋值到备份字段update tableNameset columnNameBak = columnName; --删除主键备份字段约束ALTER TABLE tableNameDROP CONSTRAINT PK_shoppingcart --删除主键自增字段alter Table tableName drop column columnName ; --修改备份…
测试结果为:count(*)和count(1)基本相等,count(非主键字段)最耗性能 -- 数据量 708254select count(*) from tmp_test1;-- avg 0.2240.229  0.2190.2270.2220.2150.2240.2250.2210.2400.219 select count(1) from tmp_test1;-- avg 0.2260.2300.2170.2170.2330.2250.2200.2350.2320.2330.219 se…
MYSQL的分区字段,必须包含在主键字段内   MYSQL的分区字段,必须包含在主键字段内 在对表进行分区时,如果分区字段没有包含在主键字段内,如表A的主键为ID,分区字段为createtime ,按时间范围分区,代码如下: CREATE TABLE T1 ( id ) NOT NULL AUTO_INCREMENT, createtime datetime NOT NULL, PRIMARY KEY (id) ) ENGINE DEFAULT CHARSET=utf8 PARTITION BY…
cassandra的索引查询和排序 转自:http://zhaoyanblog.com/archives/499.html   cassandra的索引查询和排序 cassandra的查询虽然很弱,但是它也是支持索引和排序的,当然是简陋的查询,这一切都是为了追求性能的代价,所以要使用cassandra,你不能希望它完全适用你的逻辑,而是把你的逻辑设计的更适合cassandra. 第一:索引查询cassandra是支持创建二级索引的,索引可以创建在除了第一个主键之外所有的列上,当然有些类型除外,例…
原来有一个字段id,为自增,主键,索引.现在要新增一个字段s_id为自增,主键,索引.同时把原来的主字段改成普通字段,默认值为0. Alter table e_diamond_jhds change s_id s_id int(10) UNSIGNED NOT NULL DEFAULT 0;  //去除原来字段的自增属性,不然无法删除这个主键Alter table e_diamond_jhds drop primary key;  //删除主键drop index s_id on e_diamo…
1.我们在创建sqlserver得数据表的主键的时候,有时会出现,后面加一串随机字符串的情况,如图所示: 2.如果你有强迫症的话,可以使用以下sql脚本进行修改,将主键的名称修改为PK_表名. --将表的主键名统一规范为PK_表名 DECLARE @PK_Name_Old varchar(100),@Table_Name varchar(100),@PK_Name_New varchar(100),@Col_Name varchar(100) DECLARE Cursor_Update_Tabl…
转自:https://www.cnblogs.com/CoffeeHome/archive/2014/06/04/3767501.html 这里powerdesigner连接的数据库是以mysql为例子,连接其他数据库时操作也基本类似 1.设置主键为自增字段 双击要设置的表,选择“Columns”标签,双击主键字段,在弹出的新窗口的General标签最下方,勾选Identiry即可 2.设置非主键为唯一键,并作为表的外键 2.1.双击要设置的表,选择“keys”标签,点击“Iinsert a r…
不带外键模式的 mysql 自增主键字段重排 1.备份表结构 create table table_bak like table_name; 2.备份表数据 insert into table_bak select * from table_name; 3.删除原来主键字段(如id) alter table table_name drop id; 4.添加主键,自增,放在第一位 alter table table_name add id int(11) primary key auto_incr…
参考代码: /** * 获取主键字段 * @param $table * @param $database * @return mixed */ public function get_primary_key($table,$database){ $sql = "SELECT k.column_name FROM information_schema.table_constraints t JOIN information_schema.key_column_usage k USING (con…
大家好,我是小林. 当我们对一张数据表中的记录进行统计的时候,习惯都会使用 count 函数来统计,但是 count 函数传入的参数有很多种,比如 count(1).count(*).count(字段) 等. 到底哪种效率是最好的呢?是不是 count(*) 效率最差? 我曾经以为 count(*) 是效率最差的,因为认知上 selete * from t 会读取所有表中的字段,所以凡事带有 * 字符的就觉得会读取表中所有的字段,当时网上有很多博客也这么说. 但是,当我深入 count 函数的原…
修改表名: ALTER  TABLE admin_user RENAME TO a_use //增加主键 [sql] view plaincopy alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id); //修改ID为自增,并设置为主键 [sql] view plaincopy alter table bran…
回到目录 如果在mysql中添加了自增字段,用来维护行的版本,那么在EF中会有一个问题,会把它当成是数据表主键,当你的真正主键是自曾时,就会把默认值0拼到生成的SQL语句里,导致你的insert出错,这是那个原因! 我们需要把它注释掉,担注释后,又有新的问题出来了 这种问题也很无厘头! 这种问题是因为你的MySQL数据库里的CreateDate字段没有把时间戳去掉,应该先把它去了就可以了! 再次运行程序,问题解决! 回到目录…
起因: 线上 user 数据库没有自增字段,数据量已经达到百万级.无论是给离线仓库还是数据分析同步数据,没有主键自增 id 都是杀手级的困难.所以在使用 create_time 痛苦了几次之后准备彻底来解决这个问题. 解决问题的思路: 当时理了两个思路,一个是直接找个夜生人静的夜晚,drop 掉目前的 primary key .然后再 add 一个 id 字段做 primary key auto increament .我觉得这个方法对于 100w 以下的数据表是一个不错的方法,首先简单,其次找…
我们都知道oracle主键自增利用的是序列sequence.我们先创建一个sequence: create sequence test_sequence start increment maxvalue nocache 然后新建一张表,例如te_user表: create table te_user( ) primary key, ), user_pwd ) ) 如果不用trigger的话,我们插入数据是用到了sequence的nextval属性,例如: ') 或者 insertinto te_…
问题 :取不到数据行的主键 要绑定的数据字段 RoleId rolename adddate RoleId 为主键是唯一的 bootstraptable的配置 uniqueId: "RoleId", //每一行的唯一标识,一般为主键列 columns: [ { field: 'RoleId', checkbox: true, align: 'center', valign: 'middle' },{ width: "100px", field: 'operate',…
近期做东西,用到了对SQLServer数据库的操作.好吧,确实好久没看了,对这个数据库陌生到了极点,连最简单的如何设置一个id主键,让它随着插入数据的增多,自动增长id值的设置都忘记了,网上查了一下,好多人都说使用代码,好像跟我要的不一样,然后在百度知道找到了答案,虽然有点不好意思,但还是贴出来吧: 问:如何手动设置SQLServer的id(主键),让它随着插入的数据自动增长? 答:点击需要设置的表,点击右键——设计——在列中,点击id——下方出现如下的图: 自增定义: 然后点击确定即可!!!!…
最近在做数据库设计的时候(以MySQL为主),遇到不少困惑,因为之前做数据库表设计,基本上主键都是使用自增的形式,最近因为这种做法,被领导指出存在一些不足,于是我想搞明白哪里不足. 一.MySQL为什么建议使用自增? 通过网上查阅资料,得出一个这样的结论:表的主键一般都要使用自增 id,不建议使用业务id ,是因为使用自增id可以避免页分裂. 按照我过去的实践:选择使用自增可以避免很多麻烦,主要体现是数据的唯一性(从1到xxx,肯定不会重复的). 1.什么是页分裂? 这块我没看太明白,我主要参考…
设置是否使用JDBC的getGenereatedKeys方法获取主键并赋值到keyProperty设置的领域模型属性中.MySQL和SQLServer执行auto-generated key field,因此当数据库设置好自增长主键后,可通过JDBC的getGeneratedKeys方法获取.但像Oralce等不支持auto-generated key field的数据库就不能用这种方法获取主键了 <insert id="add" parameterType="Stud…
1.#已经加主键 desc szdj.sys_message_user;alter table sys_message_user add constraint pk_mess_user primary key(id); 给约束起名:pk_mess_user…
这周自己在构思一个项目的表的设计,由于是第一次,所以走了很多弯路,也遇到了几个问题,这里暂时贴上来. 我用PowerDesign设计出一部分关联表的ER图之后,导出了sql文件之后用navicat导入之后发现一些属性没设置(由于本人暂时不熟悉PowerDesigner,正学习使用中),比如我想在navicat中设置主键的自增长,结果发现报错,这是由于我里面的主键在其他表中充当了外键,所以我目前知道的方法就是,只能将与他关联的另一张表的外键给删了,再去设置自增长,再关联起来,就好了.…
1,根据数据库类型拼接不同URL /** * 根据类型不同拼接连接的URL * @param dbType 1:mysql.2:oracle.3:sql server.4:gp * @param ip * @param port * @param databaseName * @return*/ public static String getTestDbUrl(int dbType, String ip, String port, String databaseName){ String ur…
传入一个实体 student(){id = 1,name = "测试" age = null,sex = null} 下面 是修改的方法 public async Task EditAsync(T model, bool IsSava = true) { _Db.Configuration.ValidateOnSaveEnabled = false; //关闭验证 _Db.Entry(model).State = EntityState.Modified; if (IsSava) {…
ALTER TABLE `photo_feedbacks` ADD COLUMN `id`  int(11) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`id`);…
public String getPkColumn(String className) { String pkColumn = null; try { Class clazz = Class.forName(className); Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { if(field.getAnnotation(Id.class) != null){ Annotation annotat…
使用@@IDENTITY 例如:insert into student(name,age) values('fanqi',23) select @@identity 使用 OUTPUT inserted 例如:INSERT INTO UserInfo(Username,LogName,[Password],resTime) OUTPUT inserted.UserID VALUES ('12345','56789','112233',GETDATE())…
InnoDB是clustered-index table,因此对于InnoDB而言,主键具有特殊意义. 可以通过主键直接定位到对应的某一数据行记录的物理位置,主键索引指向对应行记录,其他索引则都指向主键索引: 因此,可以这么说,InnoDB其实就是一个 B-树索引,这棵B-树的索引就是主键,它的值则是对应的行记录.在InnoDB数据表设计中,我们需要注意几点: 1. 显式的定义一个 INT 类型自增字段的主键,这个字段可以仅用于做主键,不做其他用途 2. 如果不显式定义主键的话,可能会导致Inn…
MySQL DBMS,MySQL的概念,数据库分类,以前MySQL的部署中的一些概念 #DBMS:数据库管理系统,用于管理数据库的大型软件.mysql就是dbms的一种 #Mysql:是用于管理文件的一个软件 #服务端软件 #socket服务端 #本地文件操作 #解析指令(sql语句) #客户端软件(各种各样) #socket客户端 #发送指令 #解析指令(sql语句) #除了mysql,还有其他类似软件: #语法大体上都是sql语句 #关系型数据库:sqllite,db2,Oracle,acc…
应用场合:数据表新增自增一主键能加快数据表的访问速度,而且是整形的索引速度最快.本程序适合在导入Oracle数据库时删除不存在主键的情况下运行. 代码说明:所有的表主键字段名都设置为ID,如果已存在ID字段,则判断是否是整形,如果不是就重命名字段为[表名ID],然后新增ID,如果不存在则直接添加自增一ID的主键 操作说明:打开PQSQL连接数据库后直接执行下面的详细脚本代码运行即可,脚本有风险(会删除原来的索引跟主键约束),请不要轻易在正式运行的数据库上直接执行 --Oracle使用游标为所有用…
原本的sql语句为: <insert id="xx" parameterType="com.hrt.partner.model.ShopInsert"> *********** </insert> 需要在其中加入2个属性如下: <insert id="xx" useGeneratedKeys="true" keyProperty="teamId"> ***********…
--获取所有数据库名: SELECT name FROM master..sysdatabases WHERE name NOT IN ( 'master', 'model', 'msdb', 'tempdb', 'northwind','pubs' ) --获取某数据库的所有表: SELECT name FROM YiDianTongV2..sysobjects Where xtype='U' ORDER BY name --获取所有表名 --XType='U':表示所有用户表; --XTyp…