草庐IT

主键自增

全部标签

python - Django 自动为现有数据库表创建主键

我有一个现有的数据库,我正在尝试使用Django访问它。我使用pythonmanage.pyinspectdb为数据库创建模型。目前我能够将模型导入pythonshell但是当我尝试以任何方式访问任何实际对象时,我收到此错误OperationalError:(1054,"Unknowncolumn'some_table.id'in'字段列表'")。我看到数据库中的表实际上没有id字段。我怎样才能解决这个问题?我是否需要更新Meta类中的ma​​naged字段并运行迁移以便它可以自动创建该字段? 最佳答案 来自Django文档:此功能

PHP,可以吗?将 password_hash 中的字符串作为主键存储在数据库中?

我有一个字符串配置,例如:“healtheworld”然后我像这样使用密码哈希对其进行转换password_hash($string,PASSWORD_DEFAULT)然后我将它存储在数据库中的字段内>>“token”(主键)我能行吗?如果可以的话,如果password_hash的字符串再次生成,在数据库上有机会得到和之前一样的结果吗? 最佳答案 是的,因为每次使用生成的散列作为表中的主键时,使用password_hash()完成的散列密码都会生成一个唯一的散列。只需确保该列的长度为60个或更多字符。

sql - 建立一个基本表,整数自增主键是标准的吗?

我有一个网络应用程序,我有一个用户的概念,它可能会像这样进入用户表:table:userusername(varchar32)|email(varchar64)|fav_color|...我希望用户名和电子邮件是唯一的,这意味着我不能允许用户拥有相同的用户名或相同的电子邮件。我看到这类示例表总是引入一个整数自动递增主键。不知道为什么这样做,是为了以后通过外键加快查询速度吗?例如,假设我有另一个表:table:gradesusername(foreignkey?)|grade将用户名用作外键是否效率低下?我想做这样的查询:SELECTFROMgradesWHEREusername='jo

mysql - 对复合主键执行命令

假设我有下表item_a_id,item_b_id,value其中item_a_id和item_b_id是复合主键。在我的示例中,a,b和b,a是等效的。因此我想确保item_a_id 最佳答案 在合理的当前版本的MySql中,您可以使用触发器来emulateacheckconstraint产生所需的行为。 关于mysql-对复合主键执行命令,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/quest

MYSQL 5.5 删除主键

我正在将我的quartz.net版本从1.0.3升级到2.0.2有一个数据库模式的迁移脚本,它是为MSSQL编写的,我正在尝试编写它的MYSQL版本。但是,我无法删除主键(我需要这样做)。脚本的原始MSSQL版本:ALTERTABLEBLOB_TRIGGERSDROPCONSTRAINTBLOB_TRIGGERS_PKEY;ALTERTABLEBLOB_TRIGGERSDROPCONSTRAINTBLOB_TRIGGERS_TRIGGER_NAME_FKEY;ALTERTABLESIMPLE_TRIGGERSDROPCONSTRAINTPK_SIMPLE_TRIGGERS;ALTERT

php - MYSQL 按日期或主键排序?

我有一个包含自动递增主键列和日期时间列的表。我想返回按创建日期排序的行。我按日期排序还是按主键排序有关系吗?我认为与0000-00-0000:00:00或时间戳的日期格式相比,主键更快。新记录将具有更大的主键。然而每个人都按日期字段排序。 最佳答案 按日期字段排序,但要确保在日期字段上放置索引。日期字段是二进制字段,它与主键一样快。(日期是3个字节,而整数主键是4个字节。)它并不像您假设的那样使用字符串对其进行排序。更重要的是,它表明了您的意图,(而且主键可以环绕)。此外,如果您使用innodb,则主键完全有可能不按顺序排列,具体取

sql server 如何设置主键

开始之前限制和局限一个表只能包含一个PRIMARYKEY约束。在PRIMARYKEY约束中定义的所有列都必须定义为NOTNULL。如果没有指定为Null性,则加入PRIMARYKEY约束的所有列的为Null性都将设置为NOTNULL。创建主键会自动创建相应的唯一群集索引、聚集索引或非聚集索引(如果这样指定)若要重新定义主键,则必须首先删除与现有主键之间的任何关系,然后才能创建新主键。此时,将显示一条消息警告您:作为该过程的一部分,将自动删除现有关系。如果主键由多个列组成,则其中一个列将允许重复值,但是主键中所有列的值的各种组合必须是唯一的。在SQLServer中,主键是数据表中唯一标识每一行记

mysql - 自动删除主键序列中的间隙

我正在创建一个网页。该网页根据用户操作将数据存储到MySQL数据库中。数据库有很多行。该行的主键是列rowID,它只是按顺序对行进行编号(例如1、2、3、4....)。用户可以选择删除行。问题是当用户删除最后一行以外的行时。rowID中有一个跳过。例如,如果有5行,1、2、3、4、5,用户删除了第三行。现在rowID列中的数据是1、2、4、5。我想知道MySQL或PHP中是否已经有一个内置函数可以有效地解决这个问题。我知道摆脱这种情况的唯一方法是遍历行并基本上刷新rowID。但是,我觉得如果有大量行,这在时间上会非常昂贵。我还想知道如何在创建新行时自动增加rowID。目前我有代码可以找

mysql - 有没有办法在mysql数据库中插入一个带前缀的自增主ID?

我试图在MySQL数据库中插入一个数据作为主要ID,该ID具有一个字母数字值和两个数值。此数据将自动递增生成数字,但字母数字值将是固定的。比如,D1、D2....D54、D55、D56等。在这里,“D”始终相同,但数字会自动递增。有什么办法吗? 最佳答案 首先,不建议这样做,就像其他人评论的那样,您可以即时生成此id值。但是,如果您仍然希望按自己的方式进行,至少有两种方法:或多或少可靠的方法涉及使用单独的表进行排序和触发架构:CREATETABLETable1_seq(idINTNOTNULLAUTO_INCREMENTPRIMAR

MySQL 使用主键删除重复行

我有一个包含以下列的表:ID(primarykey),USER,ACTIONTIMELOCATION我正在尝试删除重复条目同时使用以下列:USER、ACTION、TIME、LOCATION。我写了以下查询:DELETEFROMtest.testloginsWHEREidIN(SELECT*FROM(SELECTidFROMtest.testloginsGROUPBYUSER,ACTION,TIME,LOCATIONHAVING(COUNT(*)>1))ASA);但是,当我执行它时,每次运行只会删除1行。我的测试数据有大约40多行是重复的,每行都分配了一个单独的id。