我运行的是PostgreSQL 9.4,并有下表:
CREATE TABLE user_cars (
user_id SERIAL REFERENCES users (id) ON DELETE CASCADE,
car CHARACTER VARYING(255) NOT NULL,
CONSTRAINT test UNIQUE (user_id, car)
);
该表允许用户拥有多辆汽车,但只能使用汽车名一次。但其他用户可能有相同的汽车名称。
我希望有另一个表,它引用了唯一约束test,并尝试了如下内容:
CREATE TABLE mappings (
ot
我在ETL例程中填充了一个表,一次填充一个列。强制列(是外键)首先和一次设置,因此表的初始状态是:
key | fkey | a
-------|--------|-------
1 | 1 | null
在处理A值之后,我使用simple和PostgreSQL方言插入它们,以进行简单的插入:
upsert = sqlalchemy.sql.text("""
INSERT INTO table
(key, a)
VALUES (:key, :a)
ON CONFLICT (key) DO UPDATE S
我正在为Postgres 12数据库编写一个幂等模式更改脚本。但是,我注意到,如果在ADD列语句中包含if NOT,那么即使该列已经存在,它也在为已经存在的唯一性约束添加重复索引。简单的例子:
-- set up base table
CREATE TABLE IF NOT EXISTS test_table
(id SERIAL PRIMARY KEY
);
-- statement intended to be idempotent
ALTER TABLE test_table
ADD COLUMN IF NOT EXISTS name varchar(50) UNIQUE;
运行此
我有一个由三列组成的(简化的)表:
id INT PRIMARY KEY NOT NULL AUTO_INCREMENT,
foreignID INT NOT NULL,
name VARCHAR NOT NULL
基本上,我想添加一个约束(在数据库级别而不是在应用程序级别),即每个foreignID只能存在一个唯一的“名称”。例如,给定数据(id,foreignid,name):
1,1,Name1
2,1,Name2
3,1,Name3
4,2,Name1
5,2,Name2
如果用户试图在foreignId 1下插入另一个'Name3‘,我希望约束失败,但如果用户试图在forei
我有一个PL/SQL函数,它在Oracle数据库上执行update/insert操作,该数据库维护一个目标总数并返回现有值和新值之间的差值。
以下是我到目前为止拥有的代码:
FUNCTION calcTargetTotal(accountId varchar2, newTotal numeric ) RETURN number is
oldTotal numeric(20,6);
difference numeric(20,6);
begin
difference := 0;
begin
select value into oldTotal
我在内存DB中使用h2,我有一个小的spring引导应用程序。在尝试运行测试时,我得到了错误:
java.lang.IllegalStateException: Failed to load ApplicationContext
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'flywayInitializer' defined in class path resource [org/springframework/boot/a
我有两张桌子:
狗
狗主
我正在尝试创建一个从DogOwner到Dog的外键,但不是在狗表的主键上。我计划为狗表的dog_id列创建自己独特的id。随函附上下列方案:
CREATE TABLE dog(
id INT NOT NULL identity(1,1),
dog_id INT NOT NULL,
dog_name VARCHAR (200) NOT NULL,
create_date DATETIME NOT NULL,
update_date DATETIME DEFAULT getutcda
因此,我有一个结构类似于:
CREATE TABLE x (
id SERIAL,
a character varying(1024) NOT NULL,
b character varying(2048),
c character varying(1024)
);
CREATE UNIQUE INDEX uniq_x_a ON x USING btree (a) WHERE (b IS NULL);
CREATE UNIQUE INDEX uniq_x_a_b ON x USING btree (a, b) WHERE (b IS NOT NULL);
现在
解决方案:
在多列上放置唯一约束
ALTER TABLE rating ADD UNIQUE KEY ( id , id );
我想在我的评分系统中插入一个分数。如果数据不存在,我希望能够插入数据。如果确实存在,我还希望相同的查询返回true/false。
我查看了INSERT IGNORE,但是这个方法失败了,所以我不知道如何对照它。
我知道我可以尝试一个SELECT ... WHERE id = 1,而不是插入,但是我想把它向下移到一个插入,这有可能吗?
我有一个表t,其中有一个名为json的列,类型为JSON。在JSON中有一个自然键:
> SELECT json->'id' AS id FROM t LIMIT 1;
id
-----------------------------
" 63631ff3809de7a17398602f"
我可以在UNIQUE INDEX上创建id,因此:
> CREATE UNIQUE INDEX t_id ON t((json->>'id'));
给出下表
CREATE TABLE example (
id int NOT NULL IDENTITY(1,1),
strA NVARCHAR(10) NULL,
strB NVARCHAR(10) NULL,
CONSTRAINT [pk_id] PRIMARY KEY (id)
CONSTRAINT [unq_str_combo] UNIQUE (strA, strB)
CONSTRAINT [chk_one_is_null] CHECK ((strA IS NULL AND strB IS NOT NULL) OR (strA IS NOT NULL
有没有办法在使用过程的MemSQL管道中使用类似于向上插入/合并的功能。
我尝试在过程中使用ON DUPLICATE KEY UPDATE,但是我的管道失败了,并显示错误Feature 'INSERT ... ON DUPLICATE KEY UPDATE for columnar tables' is not supported by MemSQL.
如果需要更多信息,请告诉我。
谢谢,Santhosh
当我运行以下SQL代码时:
INSERT INTO table
(column1, column1)
SELECT column1, column2
FROM other_table
WHERE column2 = 'foo'
ON CONFLICT DO NOTHING;
我得到了
PG::CheckViolation: ERROR:
new row for relation "table" violates
check constraint "tables_column1_valid_first_char"
如何跳过违反check约束行?
我
在插入和更新时,我需要检查表中的重复记录。下面是我的问题。它在插入的情况下工作得很好,但在更新时失败。我无法弄清楚这一点。请帮帮我。
Insert:
Set @Count = (Select ISNULL(Count(*),0) From AccountMaster Where [Name] = @Name and Id=@Id and Flag=1);
If @Count >0 and @InsertUpdateFlag=1
BEGIN
Set @DbErrormessage = 'Business Name and Account Id must be uni
我正在使用Entity Framework4.1,并且有一个看似简单的要求:我想通过唯一的键获取一个实体,或者如果它还不存在,就创建它:
var user = db.Users.SingleOrDefault(u => u.Sid == sid);
if (user != null)
return user;
user = new User(sid);
db.Users.Add(user);
通常这很好用,但是当我一起运行一组测试(使用MSTest)时,其中一个总是失败,并显示“序列包含多个元素”。
插入查询失败,错误为“重复条目”,但当我试图为主键运行SELECT查询时,它将不返回任何行。
如果没有行,那么这怎么可能是重复的条目?
Desc MyTable;
Field Type Null Key Default Extra
folderId binary(16) NO PRI
referenceId binary(16) NO PRI
referenceType String NO
插入查询
Select folderId_2 from FolderRecordContents limit 5;
INSERT INTO MyT
我们有一张桌子,例如
create table pages (
id uuid primary key not null,
parent_id uuid not null references pages(id),
shortname text not null,
shorturl text not null,
constraint globally_unique_shorturl unique (shorturl)
constraint locally_unique_shortname unique (parent_id,shortname)
)
这里的逻辑意图是保留