我正在尝试执行以下查询:
INSERT INTO table_listnames (name, address, tele)
VALUES ('Rupert', 'Somewhere', '022')
WHERE NOT EXISTS (
SELECT name FROM table_listnames WHERE name='value'
);
Run Code Online (Sandbox Code Playgroud)
但这会返回错误.基本上我不想插入记录,如果记录的'name'字段已存在于另一条记录中 - 如何检查新名称是否唯一?
UPDATE AggregatedData SET datenum="734152.979166667",
Timestamp="2010-01-14 23:30:00.000" WHERE datenum="734152.979166667";
Run Code Online (Sandbox Code Playgroud)
如果datenum存在,它可以工作,但如果不存在,我想将此数据作为新行插入datenum.
UPDATE
datenum是唯一的,但这不是主键
我正在尝试学习如何使用密钥并打破必须SERIAL为所有表中的所有行设置类型ID 的习惯.与此同时,我也在做多对多的关系,因此要求协调关系的表中任一列的唯一值会妨碍这一点.
如何在表上定义主键,以便任何给定值都可以在任何列中重复,只要所有列的值组合永远不会重复?
我正在尝试创建一个测试数据库,它是预先存在的数据库的副本.我正在使用Django模型(理论上与原始数据库一起使用的模型)来执行此操作.我最近继承了其他人的代码,并试图弄清楚代码到底发生了什么.
在模型中,表中的一个表有两列标识为主键.
column1 = models.IntegerField(primary_key = True)
column2 = models.IntegerField(primary_key = True)
column3 = models.CharField(max_length = 30)
Run Code Online (Sandbox Code Playgroud)
当我尝试将此模型同步到测试数据库时 - 发生错误:
文件"/somePathHere/MySQLdb/connections.py",第36行,在defaulterrorhandler中引发错误类,errorvalue _mysql_exceptions.OperationalError:(1068,'多个主键定义')
它是在django文档中写的,Django不允许多个主键.但是,看看DESCRIBE [tablename]原始MySQL数据库中的输出,看起来这正是这里发生的事情:
+------------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------+------+-----+---------+-------+
| IDENTIFIER | bigint(20) | NO | PRI | NULL | |
| TIMESTAMP_ | bigint(20) | NO | PRI | NULL | |
| VALUE_ | longtext | YES | | NULL | |
+------------+------------+------+-----+---------+-------+
Run Code Online (Sandbox Code Playgroud)
请注意,IDENTIFIER和TIMESTAMP_都列为主键. …
我在我的应用程序中使用'foriegner'gem来设置主键,现在我处于在表中设置复合主键的情况.
我在网上搜索了这个,但无法为此找到明确的解决方案.
如果可以使用foreigner gem或任何其他方法在rails应用程序中设置复合键,请建议我.
注意:我正在使用Postgres
谢谢.
我正在使用mysql server.where我创建了一个名为question的表.这个表的列/属性是(课程,主题,年份,问题)我想创建一个主键(或复合键)由(课程+主题+年)组成.即对于特定的课程+主题+年组合,只能有一个问题.只有一行与(课程+主题+年)的组合,创建另一行是不可能的.我做到了:
primary key(course,subject,year);
Run Code Online (Sandbox Code Playgroud)
但它不工作.我可以创建两行,当然,主题,年份相同的组合.
任何人都可以告诉我,我怎么能创建一个复合键propery ????
我想要一个 1_5_4 形式的主键,其中
1 是用户 ID
5 是组件 ID
4 是回合 ID
谁能告诉我这对于 MySQL p 键设计来说是好还是坏的做法以及它将如何影响索引等。我知道你应该保持 p 键简短,但我愿意为了数据库设计的简单性而牺牲这一点。
谢谢,