sql语句插入主键为空,为什么主键还会自动增长

执行sql语句INSERT INTO tbuser VALUES(null,'1','1');
结果成功插入了一条语句
图片说明
这是为什么?

sql

8个回答

你表设置的主键是自动增加,这个时候是不需要插入主键

建表的时候设置了,就会自增啊。。。

楼主可以试一下INSERT INTO tbuser VALUES(0,'1','1');
看看是什么效果。

INSERT INTO tbuser VALUES(0,'1','1');也能成功
图片说明
只要不是重复的主键都会成功,并且主键会从上一条记录递增

我现在用的是mysql数据库,其他数据库也一样吗

打开此表中的 设计表 将鼠标放到id上 ,你看下边的标注肯定有:id自增。

因为你的id设了自增

只要能插入,就算一条记录呀

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
(8)列属性:是否允许为空、默认属性值、主键、自动增长
一、是否允许为空 null 、not null 规定一个字段的值,是否可以为null,默认允许为空 null not null create table php1( a int not null, b int ); 若字段不允许为空,还没默认值,插入一条记录时,自然会报错,但是报的错误是没有默认值,从此错误可以看出,当不允许为空的字段,插入记录,不插入此字段时,会先找默认属性值,若
用mysql 语句实现id自增,添加主键。
<br />1、ALTER TABLE `domain_dns_tucows` ADD PRIMARY KEY(`id`);<br /><br /><br />      如果以前有主键的话: ALTER TABLE `domain_dns_tucows` DROP PRIMARY KEY, ADD PRIMARY KEY(`id`);<br /><br /><br /><br />2、ALTER TABLE `domain_dns_tucows` CHANGE `id` `id` INT(11) NOT
自增主键的sql设置语句
ALTER TABLE Product ADD id int IDENTITY (1,1) PRIMARY KEY
oracle添加数据时主键自动增长
CREATE TABLE STUDENT( --创建学生表  ID NUMBER(10) PRIMARY KEY,   --主键ID  SNAME VARCHAR2(20),);此时给学生表添加数据时 必须指定idINSERT INTO STUDENT VALUES(1,'Tom');下面用触发器和序列结合使得添加数据时id自动增长 不要指定了 --创建序列CREATE SEQUENCE SEQ_...
SQL Server 编写自动增长的字符串型主键
1、编写标量值函数ICONVERT2STRING CREATE FUNCTION ICONVERT2STRING(@N INT,@F INT) RETURNS VARCHAR(10) AS BEGIN DECLARE @M INT DECLARE @L0 INT DECLARE @CH VARCHAR(10) DECLARE @ST VARCHAR(20) SELECT @CH='' SELEC
mysql主键设置了递增,插入语句的写法
在我们使用mysql数据库的使用,如果主键设置的是自动增长的话,我们可以使用一下几种插入的语句:一: 比如说:有表table,列id,name ,email (id为自增主键)可以怎么写: INSERT INTO table1(name,email)VALUES ('abc','123@qq.com'); 二: 也可以这样写: insert into tb
SQL Server设置主键自增长列(使用sql语句实现)
原地址为:http://www.jb51.net/article/33539.htm 1.新建一数据表,里面有字段id,将id设为为主键  复制代码代码如下: create table tb(id int,constraint pkid primary key (id))  create table tb(id int primary key )  2.新建一数据表,
001sql server2005 主键自增设置 如何创建外键
自增长的不能使用0001开始,自增型只能是数值的,所以应该从1开始。
access sql 加主键 自增长
create table tabName(ID AUTOINCREMENT primary key) ——————创建表时把ID设为自增长的主键 alter table tableName add constraint pk_id primary key(ID)——————表已存在把ID设为主键 alter table [table_name] add [Id] AUTOINCREMENT
mysql自动增长后插入数据
mysql数据库表设置为id自动增长后,插入数据的sql语句。指定id错误:INSERT INTO test VALUES(test);这样的形式会产生错误,信息大致说数据列不够。Column count doesnt match value count at row 1如果,自己填写id也可以,如下:INSERT INTO test (id, name) VALUES(1,test
关于数据库中的主键的自动增长
Mysql、SqlServer、Oracle主键自动增长的设置       1、把主键定义为自动增长标识符类型 在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如: create table customers(id int auto_increment primary key not null, name varchar(15)); i
一开始 一直不明白,主键自动增长sqlite里面是如何插入的
后来发现,只要不写这个字段,或者这个字段插入的是NULL就行。注意:是NULL,不是字符串,也不是对象。 不管代码中有没有是否为空的限制,只要在用navicat 打开的时候,没有 notnull的限制就行。否则,还是插不进去的。 [db executeUpdate:@"INSERT INTO custom1013(id,sys_id,status_id,custom_id,modify
Hibernate 插入主键自增的一条数据
Hibernate 插入主键自增的一条数据
主键的SQL语法 id自动增长 为主键的 删除报错
删除主键 l Incorrect table definition; there can be only one auto column and关于主键的SQL语法 (2010-11-03 15:19:08) 转载▼ 标签: mysql 杂谈   关于主键的SQL语法: alter table t_google_mem drop prim
三个主流数据库的主键自增的语句设置方法
1.MySql 在Mysql中只需将主键设置成auto_increment即可 例如: create table student (    id int auto_increment primary key not null,    name varchar(30) not null ) 2.Sqlserver 在Sqlserver中只需将主键
hibernate处理主键自增
学过hibernate的都知道hibernate支持n种主键生成策略。但有一种比较诡异,就是sequence。众所周知,oracle 表的主键生成策略是没有自增(identity或者autoIncrement)的,他是通过 sequence 来实现的。而mysql正好与oracle相反,mysql支持自增,恰好不支持 sequence。如果想要在mysql上应用sequence主键生成策略那就
MySQL数据表中有自增长主键时如何插入数据
MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候; 如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值; 也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填; 具体:1.创建数据库 create table if not exists userInfo ( id int PRIMARY KEY AUTO_I
主键id自增的sql语句
主键id自增(主键后面跟AUTO_INCREMENT) 查看表字段信息:
SQL server修改主键为自动增长
SQLServer不能通过Navicat等界面工具修改主键的自动增长,修改操作只能通过sql命令来实现。 自增列不能直接修改,必须将原有ID列删除,然后重新添加一列具有identity属性的ID字段。比如你要修改的字段名为ID: alter table 表名 drop column ID alter table 表名 add ID int identity(1,1) 注:这只适用于刚建完表
通过sql语句向oracle数据库中插入一条记录(含有主键),系统当前时间插入表中 ,空值插入表中
http://blog.knowsky.com/200091.htm 通过sql语句向oracle数据库中插入主键时,不能直接写主键值,而应该通过序列得到下个主键值。 如:向表YOUDemo中插入一条数据,ID为主键,序列为YOU_Seq ? 错误的写法: insert into YOUDemo(ID,NAME,AGE)values(52,’changjian’,30); 正确的
oracle建表语句,id是自动增长,要完整的建表语句
SQL> CREATE SEQUENCE test_sequence2 2 increment by 1 -- 每次递增1 3 start with 1 -- 从1开始 4 nomaxvalue -- 没有最大值 5 minvalue 1 -- 最小值=1 6 NOCYCLE; -- 不循环 Se
mysql中主键自动增长时的几种情况
1、我们先建一个表user mysql> create table user(     -> id int(4) primary key auto_increment,     -> username varchar(20),     -> password varchar(20)); Query OK, 0 rows affected (0.08 sec) 2、我们先插入
Hibernate设置主键自增,执行HQL语句
//设置主键自增 @Id @Column(name = &quot;RecordId&quot;, unique = true, nullable = false) @GeneratedValue(strategy = GenerationType.AUTO) //允许主键自动增长 使用hibernateSessionFactory获取session插入数据. public...
mybatis insert语句中自增长
1、insert使用db自动生成主键 insert into Author (username,password,email,bio) values (#{username},#{password},#{email},#{bio}) 2、db不支持自动生成时 select CAST(RANDOM()*1000000 as INTEGER) a from S
SQL Server 2008 设置主键自动增长
int型能设置主键 右击设置主键如果是灰的,说明此类型的变量不能设置主键 在打开的数据库中,找到表选项,右键点击表,选择“新建表”。 通常,我们会设置第一列的字段名称为“ID”,并且给这个列设置为主键。方法是,右键点击该列,选择“设置主键”,在该列的左侧会有一台钥匙的图标。数据类型要选择“int”. 选择该列的时候,在属性中会自动显示这一列的相关属性。点开“标示
设置Sql Server 2008 主键自动增加
中文版 英文版: sql语句: CREATE TABLE new_employees ( id_num int IDENTITY(1,1), fname varchar (20), minit char(1), lname varchar(30) );
给MySql表格添加一个自动增长的主键列
曾经给某个Mysql表格添加主键时,用了以下SQL语句 alter table `表格名` add column `列名` int not null auto_increment comment '主键' before `某一列名`; 结果遇到如下两个错误 :   Error Code : 1064 You have an error in your SQL synta
Android sqlite 主键自增长
今天在APP中增加一个添加项目的功能,项目的主键为整数,要让它自增长。 既然要自增长,那么在代码里面就不用给id字段赋值。但是调试的时候发现不行,提示主键重复,观察了输出,不赋值的话,id默认为0,于是每次都为0,就重复了: Source source = new Source(); source.setName(dict.getName());//id没有赋值 SourceManager.g
sql语句之删除(自增长主键清除)
一般我们使用的删除语句是:delete from tablename(表名) where (条件),表示删除该条件下的记录,不过对于一些设置的自增长主键,那么删除后,如果新添加的数据会在这个删除的id上递增,有什么我们需要删除后不留痕迹,也就是不保留这个索引,那么需要换一个删除语句:truncate (table) tb,对整个表记录进行删除,缺点是不能对特定的行删除,因为会重置索引,因此,如果删...
Mysql,SqlServer,Oracle主键自动增长的设置
1、把主键定义为自动增长标识符类型在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值。例如:create table customers(id int auto_increment primary key not null, name varchar(15));insert into customers(name) values("name1"
oracle 创建表sql语句,主键,自增长
在创建表之前请必须了解一下两点 1,oracle 没有identity,所以需要自己用squence 和 trigger 配合使用 实现 自增长。 2,oracle中如果使用关键字,需要用 双引号引起了。所以下面例子中出现的双引号可以理解成转义的。 /    在执行多个sql是用 / 可以区分。 现在就直接来sql语句。 检查是否存在该表,并删除 declare
MySQL - 列属性(主键、唯一键和自增等)
数据表中,真正约束字段的是数据类型。但是数据类型的约束很单一,需要有一些额外的约束,来更加保证数据的合法性。查看表数据结构 红色表示数据类型; 蓝色表示列属性; 列属性有很多,大致如下:NOT NULL/NULL, DEFAULT, PRIMARY KEY, UNIKUE KEY, AUTO_INCREMENT, COMMENT【1】空属性其有两个值:null(默认值) 和 not nul
MySQL数据表中怎么给已经有主键自增的表加入数据
MySQL数据库表中有自增主键ID,当用SQL插入语句中插入语句带有ID列值记录的时候; 如果指定了该列的值,则新插入的值不能和已有的值重复,而且必须大于其中最大的一个值;也可以不指定该列的值,只将其他列的值插入,让ID还是按照MySQL自增自己填; 具体: 1.创建数据库 create table if not exists userInfo ( id int PRIMARY KEY
解决SQL Server 2008数据库主键自增的问题
1、原理实现 待补充。 2、设置主键自动增加 MS SQLServer 在MS SQLServer中,如果把表的主键设为identity类型,数据库就会自动为主键赋值。 create table customers(id int identity(1,1) primary key not null, name varchar(15)); insert into
使用UUID生成主键向Oracle中添加数据
用UUID生成主键,然后控制数据添加到Oracle中,具体代码如下/* *@(#)PrimaryKeyByUUID.java 2015年5月4日 * *Copyright 2015 Cbo,All rights reserved. */ package com.test.uuid; import java.sql.Connection; import java.sql.Date; imp
表生成后(已有数据)如何增加主键,设置自动增长
alter table (表名) add primary key(id);    -----设置主键 alter table (表名) modify id int auto_increment;    --------设置自动增长
sql server建表时怎么设置ID字段自增
打开要设置的数据库表,点击要设置的字段,比如id,这时下方会出现id的列属性表 列属性中,通过设置“标识规范”的属性可以设置字段自增,从下图上看,“是标识”的值是否,说明id还不是自增字段 能够设置ID字段自增的字段必须是可自增的,比如int,bigint类型,而varchar类型是不可自增的。比如查看name的列属性时,可以看到“是标识
用SQL语句给一个表的增加自增主键或删除主键
刚开始时碰到这个需求时,在网上搜索了一下,发现都说不行,得先删除那主键列再重新增加或者先创建一个临时表再把数据导过来,其实在MYSQL中是可以直接修改的。 修改ID字段为自增主键: alter table `test` change `id` `id` int (11) UNSIGNED NOT NULL AUTO_INCREMENT , add primary key (`id` );
Oracle 自增长主键 三种方式
Oracle操作篇 oracle建表空间,建表可以借PL/SQL进行创建,非常使用。介绍一个小技巧 1、oracle表中的主关键字,如何设成自动增长?并对该字段插入数据? 两种方法: 一、序列 创建sequence create sequence sequence_name minvalue 1 maxvalue 99999999 start
主键id是自增的,插入数据还是提示 SQL 不能插入重复键
是因为数据库里面当前id最大值 要小于 数据库自动生成的值 (sequence), 出现这种情况可能是数据库最大id是手动插入的,但是sequence没有跟着递增; 解决办法:手动将数据库当前 sequence 改成大于 当前最大值就OK了
转-用sql语句将一个表的字段改为主键自增
create   table   ttt     (     t1   int,     t2   varchar(8)     )         現在想把字段t1設為自增字段和主鍵.         那麼運行下面的代碼:     CREATE   TABLE   dbo.Tmp_ttt     (     t1   int   NOT   NULL   IDENTITY   (1,   1),
sybase创建主键自增,时间字段自动获取的表
create table qbsource1 (         ID  numeric  identity  not null primary key,                 NAME VARCHAR(255) not null,                 FLAG NUMERIC DEFAULT 0,                 TIME1 datetime
mybatis插入数据主键自动增长处理
1.如果数据库支持自动增长,如mysql和sqlserver,那么可以设置useGeneratedKeys="true",而且设置keyProperty到你已经做好的目标属性上 例如:上面的表中已经对id进行了自动生成的列类型,那么语句可以修改为 userGeneratedKeys="true" keyProperty="id"> 插入语句,与id无关 2.若果数据库不支持自动增长
Mysql新增自增长主键列
有的时候需要对于一个Mysql数据库表添加个自动增长主键,刚开始的时候使用下面的语句: alter table taskinfoconfig add column id int(10) not null auto_increment ; alter table taskinfoconfig add primary key(id); 可是在执行的时候发现报错,信息如下: In
SQLSERVER自增主键
SQLServer 中含自增主键的表,通常不能直接指定ID值插入,可以采用以下方法插入。1. SQLServer 自增主键创建语法:identity(seed, increment)其中seed 起始值increment 增量示例:create table student(      id int identity(1,1),      name varch
sql语句查询数据库中的表名/列名/主键/自动增长值
----查询数据库中用户创建的表 ----jsj01 为数据库名 select name tablename from jsj01..sysobjects where type='U' and name not in ('dtproperties') --查询表里的字段信息 exec sp_help  对象名 ---docs为表名 ---- select * from sysco
SQL-已存在数据的表主键设置递增
MySQL的数据库文件后缀为.sql,而SQL server的是两个文件,一个后缀为.mdf,一个后缀为.ldf,所以MySQL的数据库文件只能在窗口中打开,类似于新建查询,而不能作为数据库导入。但是MySQL和SQL server的语句有区别,所以打开时会有很多错误,这些错误只是和MySQL有关,核心的创建表之类的是没问题的,所以可以删除没用的只剩创建插入的语句,然后执行。 刚发现一个问题,M
Sql Server批量删除主键,添加自增长主键
最近遇到一个问题,一个数据库中有很多相近的表,已经有数据了,但是需要
SQL 数据库 学习 032 identity的用法 --- 如何设置主键自动增长(用户不需要为identity修饰的主键赋值)
我的电脑系统:Windows 10 64位 SQL Server 软件版本: SQL Server 2014 Express 本篇博客里面使用了 scott 库,如何你现在还没有添加这个库到你的服务器里面,请在查看本篇博客前,访问这篇博文来在你的服务器里面附加scott库。 identity 的用法 — 如何设置主键自动增长(用户不需要为identity修饰的主键赋值)create table
SqlServer代码设置主键并自动生长
create table T_UserLogin(UserId  int not null primary key identity(1,1),UserName nvarchar(50) not null, Pass varchar(50) not null )
相关热词 c# 时间比天数 c# oracle查询 c# 主动推送 事件 c# java 属性 c# 控制台 窗体 c# 静态类存值 c#矢量作图 c#窗体调用外部程式 c# enum是否合法 c# 如何卸载引用
立即提问