mysql为什么不设主键就不能输入数据

问题描述

mysql为什么不设主键就不能输入数据

不知道怎么搞得,创建数据表的时候如果不设置主键的话这个表就会变成read only,不能输入数据,加上主键之后才能输入。这个是权限没弄对的问题吗?怎么改成不设置主键也可以输入数据?

解决方案

不设置主键没法修改数据。原因是如果两条数据在数据库中所有字段的值一样。你修改其中一条,怎么知道你修改的是哪一条还是两条都修改呢?
虽然数据库允许没有主键的表,但是任何情况,定义任何表,都必须有主键。

解决方案二:

这个 应该是数据库规定的必须有主键之后才能操作数据

解决方案三:

这个是关系型数据库规定的吧

解决方案四:

MySQL中表示可以没有主键的,没有主键也是可以正常使用的。
你这个情况可以检查一下数据库的安全设置。

解决方案五:

hibernate向mysql插入数据后,得到该条数据主键的方法

解决方案六:

hibernate向mysql插入数据后,得到该条数据主键的方法

时间: 2024-11-05 12:22:08

mysql为什么不设主键就不能输入数据的相关文章

visual studio-vs怎么样代码获取Mysql数据库中的主键

问题描述 vs怎么样代码获取Mysql数据库中的主键 100C 我正在做代码生成器,其中要获取数据库中的主键和外键以及自动增加列.下面是具体的代码,给位大神们我应该怎样升级这个代码 解决方案 解决方案二: 解决方案三: SELECT k.column_nameFROM information_schema.table_constraints tJOIN information_schema.key_column_usage kUSING (constraint_nametable_schemat

mysql auto_increment 与 联合主键冲突问题

mysql 5.5之前,auto_increment字段必须为主键,有的时候,这种自增字段,并没有多大的实际意义,而我们需要多个字段组成主键. 例如: 用户只能对购买的商品,进行一次评价,评价的自增ID,没什么用处,用户的ID和商品ID组成的联合主键,意义就大的多了.如果想保留auto_increment字段,就要使用高版本的mysql了. mysql> ALTER TABLE `order` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `user_id` , `or

mysql建立自增主键的插入,及自动插入当前时间

MYSQL里用这两个字段,几乎都是必须的. 以前都是自动建立的,现在手把手建立的时候,就要找资料来搞定了. 参考URL: http://blog.csdn.net/Weicleer/article/details/47608289 http://www.cnblogs.com/lhj588/p/4245719.html ============================== 表建立好之后,如何插入值,也是一个问题. ============================== 当数据表中有

Mysql设置自增长主键的初始值

alter table table_name auto_increment=n; 注意n只能大于已有的auto_increment的整数值,小于的值无效. show table status like 'table_name' 可以看到auto_increment这一列是表现有的值. 步进值没法改变.只能通过下面提到last_inset_id()函数变通使用 Mysql可以使用AUTO_INCREMENT来设定主键的值为自增长的,其默认值是1,如果想把它的初始值设置为1000,比较笨的办法是先插

Mysql设置自增长主键的起始值

Mysql可以使用AUTO_INCREMENT来设定主键的值为自增长的,其默认值是1,如果想把它的初始值设置为1000,比较笨的办法是先插入一条记录并指定主键的值为999,然后delete改行记录,例如:  代码如下 复制代码 insert into test(pk) values(999); delete from test where pk = 999; 更好的方法是使用alter的方法来直接修改,例如:  代码如下 复制代码 alter table test AUTO_INCREMENT

mysql修改自增长主键int类型为char类型示例_Mysql

原来有一个表中的主键是int自增长类型, 因为业务变化需要把int改成char类型的主键.同时因为原来的表中已经存在了数据,不能删除表重建,只能修改表结构. 首先去掉自增长属性: alter table table_name  change indexid indexid int; 然后去掉主键: ALTER TABLE table_name   DROP   primary key; 修改表结构为char类型: alter table table_name change indexid ind

MySQL中的主键以及设置其自增的用法教程_Mysql

1.声明主键的方法:您可以在创建表的时候就为表加上主键,如: CREATE TABLE tbl_name ([字段描述省略...], PRIMARY KEY(index_col_name)); 也可以更新表结构时为表加上主键,如: ALTER TABLE tbl_name ADD PRIMARY KEY (index_col_name,-); /* 创建一个qq表,将qq_id设为主键,且没有对其进行NOT NULl约束 */ create table qq( qq_id int(10), ni

MySQL添加删除主键的方法

  mysql添加删除主键操作是非常基本的操作,下面就将教您mysql添加删除主键的方法,如果您是刚刚接触mysql数据库的新人,不妨一看. 修改mysql的字符集: 在安装mysql5.0时可以设置好mysql的字符集,一般使用utf8的字符集 1.查看建立表"tablename"的sql语句 Show create table tablename;//查看建立表"tablename"的sql语句 | maos_mail_batch | CREATE TABLE

MySQL主键设计

原文:MySQL主键设计 [TOC] 在项目过程中遇到一个看似极为基础的问题,但是在深入思考后还是引出了不少问题,觉得有必要把这一学习过程进行记录. MySQL主键设计原则 MySQL主键应当是对用户没有意义的. MySQL主键应该是单列的,以便提高连接和筛选操作的效率 永远也不要更新MySQL主键 MySQL主键不应包含动态变化的数据,如时间戳.创建时间列.修改时间列等 MySQL主键应当有计算机自动生成. 主键设计的常用方案 自增ID 优点: 1.数据库自动编号,速度快,而且是增量增长,聚集