mysql怎么取主键名 MySQL的主键

MYSQL查询表的主键

SELECT

做网站、成都网站制作,成都做网站公司-创新互联已向上1000+企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。

t.TABLE_NAME,

t.CONSTRAINT_TYPE,

c.COLUMN_NAME,

c.ORDINAL_POSITION

FROM

INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,

INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c

WHERE

t.TABLE_NAME = c.TABLE_NAME

AND t.TABLE_SCHEMA = 'test'

AND t.CONSTRAINT_TYPE = 'PRIMARY KEY';

测试执行结果如下:

mysql SELECT

- t.TABLE_NAME,

- t.CONSTRAINT_TYPE,

- c.COLUMN_NAME,

- c.ORDINAL_POSITION

- FROM

- INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS t,

- INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS c

- WHERE

- t.TABLE_NAME = c.TABLE_NAME

- AND t.TABLE_SCHEMA = 'test'

- AND t.CONSTRAINT_TYPE = 'PRIMARY KEY'

- LIMIT 3;

+------------+-----------------+-------------+------------------+

| TABLE_NAME | CONSTRAINT_TYPE | COLUMN_NAME | ORDINAL_POSITION |

+------------+-----------------+-------------+------------------+

| mr_dept | PRIMARY KEY | dept_id | 1 |

| order | PRIMARY KEY | id | 1 |

| tab | PRIMARY KEY | id | 1 |

+------------+-----------------+-------------+------------------+

3 rows in set (0.06 sec)

在MySQL中如何设置主键和外键

工具/原料

电脑  MySQL

方法/步骤

设置主键:

1、通过终端进入到mysql命令行工具。

2、通过use关键字进行到目标数据库里。

3、如原表已有主键,先把原来的主键删除掉,通过DROPPRIMARYKEY命令:ALTERTABLE`jingyan`DROPPRIMARYKEY;。

4、主键已经没有了。

5、通过命令:ADDPRIMARYKEY来添加ALTERTABLE`jingyan`ADDPRIMARYKEY(`id`)。

6、输入后按下回车键即可看到queryok执行成功的字符。

7、回到数据库的可视化工具,即可显示现在的表在id列上添加了主键了。

设置外键:

1、创建好主从表。

2、选择主表,点击设计表,进入到表设计界面。

3、点击外键,进入到外键设置界面。

4、先设置外键名称和选择主表的外键字段。

5、然后在设置外键字段对应从表的数据库、表名和字。

6、点击保存就完成外键设置了。

mysql batchinsert怎么获取主键id

1. SELECT MAX(id) FROM tablename;

2. LAST_INSERT_ID() 函数

LAST_INSERT_ID 是与table无关的,与你最近一个插入数据的表有关。如果向表a插入数据后,再向表b插入数据,LAST_INSERT_ID会改变。

在多用户交替插入数据的情况下MAX(id)显然不能用。这时就该使用LAST_INSERT_ID了,因为LAST_INSERT_ID是基于Connection的,只要每个线程都使用独立的 Connection对象,LAST_INSERT_ID函数将返回该Connection对AUTO_INCREMENT列最新的insert or update 操作生成的第一个record的ID。这个值不能被其它客户端(Connection)影响,保证了你能够找回自己的 ID 而不用担心其它客户端的活动,而且不需要加锁。

使用单条INSERT语句插入多条记录, LAST_INSERT_ID返回的是列表中插入的第一条记录的id。

3. SELECT @@IDENTITY;

@@identity 是表示的是最近一次向具有identity属性(即自增列)的表插入数据时对应的自增列的值,是系统定义的全局变量。一般系统定义的全局变量都是以@@开头,用户自定义变量以@开头。

比如有个表A,它的自增列是id,当向A表插入一行数据后,如果插入数据后自增列的值自动增加至101,则通过select @@identity得到的值就是101。它也是基于connection的,每个线程独立使用的。使用@@identity的前提是在进行insert操作后,执行select @@identity的时候连接没有关闭,否则得到的将是NULL值。

4. SHOW TABLE STATUS where name ="tablename";

得出的结果里边对应表名记录中有个Auto_increment字段,里边有下一个自增ID的数值。根据表自增列设置的自增量,以这个值减去自增量,就是当前该表数据记录的最大自增ID。

它也是基于connection的,每个线程独立使用的。

怎么样去得到主键的列名在MySql中

哈哈,楼主遇到我算是你有福气了,我专门为你编写了一个函数,来获取表的主键名()(可能还有更简单的方法,但我不知道)。

请看如下代码:

?php

function get_primary($host,$user,$password,$tb) //定义函数,参数分别为主机名、用户名、密码、表名(还可以加入库名,我忘了)

{

mysql_connect($host,$user,$password); //连接主机

mysql_select_db("test"); //选择库

$result=mysql_query("DESCRIBE ".$tb); //分析表

while($rows=mysql_fetch_array($result)) //遍历结果集(即所有字段情况)

{

if($rows["Key"]=="PRI") //判断相应字段主键情况,如果是主键则跳出

break;

}

return $rows["Field"]; //返回所在字段名称

}

echo get_primary("localhost","root","","te"); //调用函数

?


新闻名称:mysql怎么取主键名 MySQL的主键
本文URL:http://myzitong.com/article/hicepo.html