当前位置: 首页 > 面试题库 >

SQL-检查列是否自动递增

步博艺
2023-03-14
问题内容

我正在尝试运行查询以检查列是否自动增加。我可以检查类型,默认值,是否可以为空等,但是我不知道如何测试它是否自动递增。这是我测试其他内容的方式:

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'my_table'
AND COLUMN_NAME = 'my_column'
AND DATA_TYPE = 'int'
AND COLUMN_DEFAULT IS NULL
AND IS_NULLABLE = 'NO'
--AND AUTO_INCREMENTS = 'YES'

不幸的是,没有AUTO_INCREMENTS可比较的列。那么,如何测试列是否自动递增?


问题答案:

对于MySql,请检查以下列EXTRA

SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'my_table'
    AND COLUMN_NAME = 'my_column'
    AND DATA_TYPE = 'int'
    AND COLUMN_DEFAULT IS NULL
    AND IS_NULLABLE = 'NO'
    AND EXTRA like '%auto_increment%'

对于Sql Server,请使用sys.columnsis_identity列:

SELECT 
    is_identity
FROM sys.columns
WHERE 
    object_id = object_id('my_table')
    AND name = 'my_column'


 类似资料:
  • 问题内容: 我正在尝试编写一个查询,该查询将检查MySQL中的特定表是否具有特定列,如果没有,则创建它。否则什么都不做。在任何企业级数据库中,这实际上都是一个简单的过程,但是MySQL似乎是一个例外。 我以为 可以工作,但是失败很严重。有办法吗? 问题答案: 这对我来说很好。 使用PHP就像…

  • 我正在研究一些关于代码信号的Javascript挑战,遇到了这个问题: 给定一个整数序列作为一个数组,确定是否可以通过从数组中删除不超过一个元素来获得一个严格递增的序列。** 注意:如果a0 我的方法是遍历序列数组,检查当前元素是否大于下一个元素,如果大于,则删除当前元素。然后,递增一个计数器,如果计数器小于2,则返回true,否则返回false。 下面是我的代码: 这个解决方案解决了17/19个

  • 问题内容: 我目前正在编写一个通用的SQL Server脚本,以清理具有更多/更少相同表结构的不同数据库。此脚本要求我擦除表中的某些数据(如果该表存在于数据库中)。这里是脚本示例 作为程序员,我知道如果两个条件块都为false,则不会执行delete命令。但是,当我在SQL中运行它时,它会返回 无效的列名“ COL1”。 我的方法可能是错误的。谁能指出我正确的方向? 问题答案: 问题是,SQL S

  • 问题内容: 我现在正在一家公司中使用全球DBA的无限智慧,他创建了一个表,该表将一个int用作ID字段,但是不会自动递增该数字。 我要从.Net传递一个表值参数,因为它随时有大约100或更多行的数据正在传递,并且我不想杀死该应用程序,破坏网络或SQL Server。 这是我的存储过程 我希望这会为我带来一些帮助,就像我对此进行测试时一样 这就是我回来的 (影响1行) (影响1行) (影响1行) (

  • 问题内容: 我有两个表,例如: 表A是我的源表,表B是目标表。现在,我需要一个查询,该查询可以在表A中找到所有不同的(附加)行,因此可以使用这些行来更新表B。因此,我需要一个查询,该查询从表A中找到以下行: 这样的查询有什么好的方法?它应该尽可能高效(避免过多的联接)。谢谢你的帮助! 问题答案: 我将使用NOT EXISTS结构。

  • 如果表已经存在,如何检查TarantoolSQL?