Tag: 主键

Oracle(ORA-02270):此列名列表错误没有匹配的唯一或主键

我有两个表, Table JOB和Table USER ,这里是结构 CREATE TABLE JOB ( ID NUMBER NOT NULL , USERID NUMBER, CONSTRAINT B_PK PRIMARY KEY ( ID ) ENABLE ); CREATE TABLE USER ( ID NUMBER NOT NULL , CONSTRAINT U_PK PRIMARY KEY ( ID ) ENABLE ); 现在,我想添加外键约束JOB引用到USER表,如 Alter Table JOB ADD CONSTRAINT FK_USERID FOREIGN KEY(USERID) REFERENCES USER(ID); 这抛出了Oracle […]

主键的devise标准是什么?

select好的主键,候选键和使用它们的外键是非常重要的数据库devise任务 – 与科学一样多的艺术。 devise任务有非常具体的devise标准。 什么标准?

如何从SQLite表中检索最后一个自动增加的ID?

我有一个表的消息与列ID(主键,自动增量)和内容(文本)。 我有一个用户列用户名(主键,文本)和哈希。 消息由一个发件人(用户)发送给多个收件人(用户),而收件人(用户)可以有多个消息。 我创build了一个Message_Recipients表,它有两列:MessageID(指的是Messages表和Recipient的ID列(指Users表中的username列)。这个表代表了收件人和消息之间的多对多关系。 所以,我有这个问题。 新消息的ID将在存储在数据库中之后创build。 但是我怎样才能持有我刚添加的MessageRow的引用来检索这个新的MessageID呢? 我总是可以在数据库中search当前添加的最后一行,但是可能会在multithreading环境中返回不同的行? 编辑:据我所知,SQLite你可以使用SELECT last_insert_rowid()。 但是,我怎样从ADO.Net中调用这个语句呢? 我的持久性代码(消息和消息接收者是DataTables): public void Persist(Message message) { pm_databaseDataSet.MessagesRow messagerow; messagerow=messages.AddMessagesRow(message.Sender, message.TimeSent.ToFileTime(), message.Content, message.TimeCreated.ToFileTime()); UpdateMessages(); var x = messagerow;//I hoped the messagerow would hold a //reference to the new row in the Messages table, but it does not. foreach (var recipient in message.Recipients) { var row […]

如何用对该表唯一的不同整数replaceDjango的主键

我有一个Django的Web应用程序,使用默认的自动递增的正整数作为主键。 此密钥在整个应用程序中使用,并经常插入到URL中。 我不想公开这个号码,以便他们可以猜测我的数据库中的用户或其他实体的数量。 这是一个频繁的要求,我已经看到类似的问题与我的答案。 大多数解决schemebuild议散列最初的主键值。 但是,这些答案都不符合我的需要。 这些是我的要求: 我想保持主键字段types为整数。 我也不希望在每次读取或写入数据库或与数据库进行比较时不必散列/取消散列该值。 这似乎很浪费这样做只是一次:当logging最初插入数据库 哈希/encryption函数不需要是可逆的,因为我不需要恢复原始的顺序密钥。 哈希值只需要是唯一的。 哈希值需要唯一唯一的表 – 不普遍唯一。 散列值应尽可能短。 我想避免超长的(20个以上的字符)url 什么是最好的方法来做到这一点? 以下工作? def hash_function(int): return fancy-hash-function # What function should I use?? def obfuscate_pk(sender, instance, created, **kwargs): if created: logger.info("MyClass #%s, created with created=%s: %s" % (instance.pk, created, instance)) instance.pk = hash_function(instance.pk) instance.save() logger.info("\tNew Pk=%s" % instance.pk) class […]

为什么select SCOPE_IDENTITY()返回一个小数而不是一个整数?

所以我有一个标识列作为主键的表,所以它是一个整数。 那么,为什么SCOPE_IDENTITY()总是返回一个十进制值而不是一个int到我的C#应用​​程序? 这真的很烦人,因为十进制值不会隐式转换为C#中的整数,这意味着我现在不得不重写一堆东西,并有很多帮助方法,因为我使用SQL Server和Postgres,其中Postgres返回一个整数等价函数 为什么SCOPE_IDENTITY()不只是返回一个纯整数? 有没有人通常使用主键的十进制/非身份值?

Sqlite主键在多个列上

在SQLITE中多于一列指定主键的语法是什么?

SQL – 多对多表主键

在阅读这个问题的评论之后,出现这个问题: 数据库devise 当你创build一个多对多的表时,你应该在两个外键列上创build一个复合主键,还是创build一个自动增量代理“ID”主键,然后在你的两个FK列上放上索引一个独特的约束)? 在每种情况下插入新logging/重新索引对性能有什么影响? 基本上这个: PartDevice ———- PartID (PK/FK) DeviceID (PK/FK) 与此相比: PartDevice ———- ID (PK/auto-increment) PartID (FK) DeviceID (FK) 评论者说: 使两个ID为PK意味着该表按物理顺序在磁盘上进行物理sorting。 因此,如果我们插入(Part1 / Device1),(Part1 / Device2),(Part2 / Device3),则(Part 1 / Device3)数据库将不得不拆分表并插入条目2和3之间的最后一个。许多logging,这变得非常成问题,因为每次添加数百条,数千条或数百万条logging时都会涉及到这些logging。 相比之下,自动增量PK允许将新logging添加到最后。 我问的原因是因为我一直倾向于做没有代理自动增量列复合主键,但我不知道是否代理键实际上是更高性能。

MySQL中的键,主键,唯一键和索引之间的区别

什么时候应该使用KEY , PRIMARY KEY , UNIQUE KEY和INDEX ?

在多个表中引用主键的外键?

我必须在数据库员工下面有两个表,即employees_ce和employees_sn。 他们都有各自独特的主键列。 我有另一个名为deductions的表,我想要引用employees_ce的主键以及employees_sn的外键列。 这可能吗? 例如 employees_ce ————– empid name khce1 prince employees_sn —————- empid name khsn1 princess 这是可能的吗? deductions ————– id name khce1 gold khsn1 silver

主键和唯一键之间的区别

我正在使用mysql数据库。 主键和唯一键之间有混淆。 请帮我在哪里创build主要和唯一的关键。 我的意思是在哪种情况下我们创build唯一的密钥或主键。