精华内容
下载资源
问答
  • 在postgresql中,设置已存在的某(num)值自增,可以用以下方法: //将表tb按name排序,利用row_number() over()查询序号并将该命名为rownum,创建新表tb1并将结果保存到该表中 create table tb1 as (select *, ...

      在postgresql中,设置已存在的某列(num)值自增,可以用以下方法:

    //将表tb按name排序,利用row_number() over()查询序号并将该列命名为rownum,创建新表tb1并将结果保存到该表中
    create table tb1 as (select *, row_number() over(order by name) as rownum from tb); 
    //根据两张表共同的字段name,将tb1中rownum对应值更新到tb中num中
    update tb set num=(select tb1.rownum from tb1 where tb.name = tb1.name);
    //判断表tb1的存在并删除表
    drop table if exists tb1;
    

      在postgresql中,循环设置已存在的某列(num)值为0-9,可以用以下方法:

    //将表tb按name排序,利用row_number() over()查询序号并将该列命名为rownum,创建新表tb1并将结果保存到该表中
    create table tb1 as (select *, row_number() over(order by name) as rownum from tb); 
    //根据两张表共同的字段name,将tb1中rownum对应值更新到tb中num中,由于为0-9循环自增,则%10
    update tb set num=(select tb1.rownum from tb1 where tb.name = tb1.name) % 10;
    //判断表tb1的存在并删除表
    drop table if exists tb1;
    

      参考内容为https://zhidao.baidu.com/question/390932023437481925.html的最佳答案

    其它:附录一个postgresql循环的写法(与上文无关)

     do $$
     declare
     v_idx integer :=0;
     begin
       while v_idx < 10 loop
         update tb set num = v_idx;
         v_idx = v_idx + 1;
       end loop;
    end $$;
    
    展开全文
  • 根据现有表创建新表: CREATE TABLE "test04" AS ( select * from testdemo); 修改数据表名: ...新增字段: ALTER TABLE test04 ADD gid1_type integer; 删除字段: ALTER...

    根据现有表创建新表:

    CREATE TABLE "test04" AS ( select * from testdemo);

    修改数据表名:

    alter table table_name(表名) rename to new_table_name(新表名)

    新增列字段:

    ALTER TABLE test04 ADD gid1_type integer;

    删除列字段:

    ALTER TABLE test04 DROP COLUMN gid1_type;

    修改列字段名称:

    alter table test05 RENAME "gid" TO "id";

    修改列字段类型:

    ALTER TABLE test05 ALTER COLUMN "gid" TYPE datatype;

    特殊的修改为integer:

    alter table table_name(表名)  alter column 字段名 type 新字段类型  using to_number(字段名,'9')

    更新字段数据:

    update test05 set "gid1_type" = 0 where ("组分类型1" = '消防栓') or ("组分类型1" = '水表') or ("组分类型1" = '节点');

    在postgresql中,设置已存在的某列(num)值自增:

    //将表tb按name排序,利用row_number() over()查询序号并将该列命名为rownum,创建新表tb1并将结果保存到该表中
    create table tb1 as (select *, row_number() over(order by name) as rownum from tb); 
    //根据两张表共同的字段name,将tb1中rownum对应值更新到tb中num中
    update tb set num=(select tb1.rownum from tb1 where tb.name = tb1.name);
    //判断表tb1的存在并删除表
    drop table if exists tb1;
    

    在postgresql中,循环设置已存在的某列(num)值为0-9:

    //将表tb按name排序,利用row_number() over()查询序号并将该列命名为rownum,创建新表tb1并将结果保存到该表中
    create table tb1 as (select *, row_number() over(order by name) as rownum from tb); 
    //根据两张表共同的字段name,将tb1中rownum对应值更新到tb中num中,由于为0-9循环自增,则%10
    update tb set num=(select tb1.rownum from tb1 where tb.name = tb1.name) % 10;
    //判断表tb1的存在并删除表
    drop table if exists tb1;

     

    展开全文
  • sqlserver标识规范修改当前 自增列标识 有时候,我们需要查看或修改SQL Server 中的identity(自增列)的目前种子,可以用如下命令来实现 查看某个表中的自增列当前的:DBCC CHECKIDENT (TableName) 修改...

    sqlserver标识规范修改当前值 自增列标识值

    有时候,我们需要查看或修改SQL Server 中的identity(自增列)的目前种子值,可以用如下命令来实现

    查看某个表中的自增列当前的值:DBCC   CHECKIDENT   (TableName)

     修改某个表中的自增列当前的值:DBCC   CHECKIDENT   (TableName,   RESEED,   value)

    比如我要把 Division 表中的 自增列 的当前值改为 30 可以用如下命令

    DBCC   CHECKIDENT   (Division,   RESEED,   30)

      然后用

    DBCC   CHECKIDENT   (Division)

         你可以看到显示的是当前值是30

     

     

     

     

     

    展开全文
  • MySQL查询结果添加固定自增列

    千次阅读 2019-04-06 12:43:31
    MySQL添加固定 select 固定 as 列名 from ... 示例: select * ,'男' as sex from student;//此时sex变为字符串类型(varchar),MySQL自动识别类型 select * ,1 as sex from student;//此时sex为int类型 ...

    测试数据准备:

    create table student(
    stu_id int primary key,
    stu_name varchar(20),
    chinese_score int,
    math_score int);
    
    insert into student values(1,'Tom',90,80);
    insert into student values(2,'Mike',70,90);
    insert into student values(3,'Jane',80,60);
    

    在这里插入图片描述

    MySQL添加值固定列

    select 固定值 as 列名 from ...
    
    示例:
    select * ,'男' as sex from student;//此时sex变为字符串类型(varchar),MySQL自动识别类型
    select * ,1 as sex from student;//此时sex为int类型
    

    在这里插入图片描述

    MySQL添加值自动增长列

    写法一:
    set @rownum=0;
    select @rownum:=@rownum+1 as num ,student.* from student;
    写法二:
    select @rownum:=@rownum+1 as num ,student.* from student,(select @rownum=0) t;
    

    注意student.* 不能写成 * ,注意赋值是 ‘:=’

    拓展:关于hive中的查询自增列

    方式一:使用row_number() over() 实现

    原表形式:
    在这里插入图片描述
    添加自增列语句:

    select row_number()  as num ,dept.* from dept;
    

    效果:
    在这里插入图片描述

    若按某字段进行排序,可将排序字段over中

    select row_number() over (order by dept.deptno) as num ,dept.* from dept;
    

    效果:
    在这里插入图片描述

    方式二:用UDFRowSequence生成代理键(未实践)

    展开全文
  • 创建一个表 create table demoTb (  ID int identity(1,1) primary key,  name varchar(30) )  查看有没有自增列 有就返回YES IF ((SELECT OBJE
  • 创建一个表 createtabledemoTb ( ID intidentity(1,1) primarykey, namevarchar(30) ) ... 查看有没有自增列 有就返回YES IF ((SELECTOBJECTPROPERTY( OBJECT_ID(N'demoTb...
  • SQL Server 平台修改自增列值由于之前处理过sql server数据库的迁移工作,尝试过其自增列值的变更,但是通过SQL 语句修改自增列值,是严格不允许的,直接报错(无法更新标识列 ’自增列名称‘)。sql server我测试是...
  • Mysql标识自增

    2020-01-12 16:47:49
    含义:可以不用手动插入,系统提供默认的序列 创建表时设置标识 CREATE TABLE 表名( 字段名 类型 key AUTO_INCREMENT ); # 设置步长 SET auto_increment_increment=步长; 要求和key搭配 ...
  • 标识:又称之为自增长 含义:可以不用手动的插入,系统提供...(自增列插入时可以把对应的写NULL,系统默认给) 例如: insert table student values(NULL,'张三'); (2)修改表时设置标识: alter tab...
  • 该种列具有以下三种特点:1、列的数据类型为不带小数的数值类型2、在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3、列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列。...
  • 清空表后要重置自增列自增起始值,使用如下语句: ...然而在修改提示成功后,再次插入条记录后发现自增列还是接着清楚前的最大。 原因之一:其它表存在于此表自增列有关联的表,不一定是主外键的关系 ...
  • SQL语句实现取消自增列属性 由于在SQL-SERVER中,自增列属性不能直接修改,但可以通过以下方式变向实现 1、如果仅仅是指定插入,可用以下语句,临时取消 SET IDENTITY_INSERT TableName ON INSERT INTO ...
  •   如果需要将mysql表中某一(非主键)的设置成自增序列,应该怎样操作呢? 比如,我需要将下表中的stu_age字段的设置成20,21,21…这样的递增序列: CREATE TABLE students ( cust_id int NOT NULL AUTO_...
  • insert into语句,其中一自增主键

    千次阅读 2014-07-16 09:40:47
    条件:id是表的主键,且自增 语句: insert into tablename (id,1,2……) values(null,'1','2……) 或者:  insert into tablename values(null,'1','2……)
  • 今天工作中遇到特殊的一个任务,就是将两个自增列值的进行对调变更。 SQL Server 平台修改自增列值 由于之前处理过sql server数据库的迁移工作,尝试过其自增列值的变更,但是通过SQL 语句修改自增列值,是...
  • 一个表中只能拥有一个自增列 如果多个列需要自增 其它的列只能通过触发器来完成列值自增 自增列: 每次都会按顺序递增,可以保证在一个表里的主键不重复 该列类型为integer 并且设置为自增 INTEGER PRIMARY...
  • SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER trigger [dbo].[tianjia] on [dbo].[Table_用户表] ...仅当使用了列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Table_课件表'中的标识指定显式
  • 重置标识自增列/标识
  • 比如,一个实体 TestEntity 对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef 添加一条记录后,如何获取新记录的ID?如下代码: var te = new TestEntity (){ Name = "名字", Age = 21};using (EF...
  • SQL Server 平台修改自增列值 由于之前处理过sql server数据库的迁移工作,尝试过其自增列值的变更,但是通过SQL 语句修改自增列值,是严格不允许的,直接报错(无法更新标识列 ‘自增列名称‘)。sql server我测试...
  • 比如,一个实体 TestEntity 对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef 添加一条记录后,如何获取新记录的ID?如下代码: [csharp] view plain copy var te = new ...
  • 比如,一个实体 TestEntity 对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef 添加一条记录后,如何获取新记录的ID?如下代码: var te = new TestEntity () { Name = "名字", ...
  • 其实,还有其它的方法可以重置自增列: 方法一:使用TRUNCATE TABLE语句: TRUNCATE TABLE删除表中的所有行,而不记录单个行删除操作,同时重置自增列。TRUNCATE TABLE 在功能上与没有WHERE子句的DELETE...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,793
精华内容 717
关键字:

列值自增