如何从mysql表中获取自动递增字段名称或主键字段名称?

Ave*_*Joe 6 php mysql primary-key auto-increment

在PHP中,如何在添加新rec时将字段的字段名称设置为自动递增?

在大多数情况下,它与表的PRIMARY_KEY相同,但不一定总是如此.

所以这个问题有两部分,第二部分分为第三部分.

1-如何获取自动递增字段名称的名称...

2-如何获取primary_key字段名称的名称...

2.1当表使用多个字段作为主键时,如何获取primary_key信息...

小智 6

如果要获取表的主键列,可以使用以下代码:

SELECT k.COLUMN_NAME
FROM information_schema.table_constraints t
LEFT JOIN information_schema.key_column_usage k
USING(constraint_name,table_schema,table_name)
WHERE t.constraint_type='PRIMARY KEY'
    AND t.table_schema=DATABASE() 
    AND t.table_name='tbName';    -- the name of your table
Run Code Online (Sandbox Code Playgroud)

要获取自动递增的字段,请尝试以下操作:

SELECT Auto_increment 
FROM information_schema.tables 
WHERE table_name   = 'tbName'  
  AND table_schema = DATABASE();  
Run Code Online (Sandbox Code Playgroud)


flo*_*ree 3

您可以使用 获取表信息SHOW COLUMNS FROM table。像这样的东西:

$res = $mysqli->query('SHOW COLUMNS FROM tablename');

while($row = $res->fetch_assoc()) {
  if ($row['Extra'] == 'auto_increment')
    echo 'Field with auto_increment = '.$row['Field'];
  if ($row['Key'] == 'PRI')
    echo 'Field with primary key = '.$row['Field'];
}
Run Code Online (Sandbox Code Playgroud)