我知道每个冲突可序列化的时间表都是可视图序列化的,但反之则不然。我在一个网页中读到,当日程表可查看序列化但不可冲突序列化时,则存在一些盲目写入。那么什么是盲写呢?
我正在学习数据库。在我非常简单的数据库中,我有 2 个表。
WorkingHoursDetail
ID
NameOfWeek
Hours
Run Code Online (Sandbox Code Playgroud)
和
WorkingHours
ID
Name
Run Code Online (Sandbox Code Playgroud)
如您所见,它们目前没有关联。
现在,我面临着将它们联系起来的问题。我知道我通过添加一个外键来做到这一点,比如 MyOtherTableID 并将其链接到其他表 ID。
在上面的示例中,我可以向 EITHER 添加外键
WorkingHoursDetail
ID
NameOfWeek
Hours
WorkingHoursId
Run Code Online (Sandbox Code Playgroud)
和
WorkingHours
ID
Name
Run Code Online (Sandbox Code Playgroud)
或者
WorkingHoursDetail
ID
NameOfWeek
Hours
Run Code Online (Sandbox Code Playgroud)
和
WorkingHours
ID
Name
WorkingHoursDetailId
Run Code Online (Sandbox Code Playgroud)
我试过这个,它似乎有效,但是这个选项让我害怕。是否有一个“正确”的答案,或者这种变化只会影响数据写入数据库的顺序。如果是这种情况,那么这肯定会决定使用它的程序的流程(用户 GUI)。
我有一个表,其中一列是自动递增序列号。我也希望将相同的值存储在另一列中(以便以后可以更改)。
我的表结构是这样的:
CREATE TABLE Test
(
test_id integer NOT NULL DEFAULT nextval('test_id_seq'::regclass),
...
...
uid integer not null DEFAULT currval('test_id_seq'::regclass),
)
Run Code Online (Sandbox Code Playgroud)
我想要uid = test_id但问题是在一个会话中插入多行时。然后currval不采取正确的ID。
我不想使用触发器。我该如何管理?
我在MS SQL-Server数据库中有以下两个表:
user_info
( user_id PRIMARY KEY,
email,
password
)
Run Code Online (Sandbox Code Playgroud)
和
messages
( time_stamp,
message,
sender,
recipients,
FOREIGN KEY(sender)
REFERENCES user_info (user_id),
FOREIGN KEY(recipients)
REFERENCES user_info (user_id)
)
Run Code Online (Sandbox Code Playgroud)
我想知道是否可以user_id在messages表的收件人字段中存储多个值。我是新手,请帮助我如何解决这个问题。
我的数据库中有一个表,其中有几个简单的列和一个二进制列。该表的主键是一个integer类型。
我面临的问题是自动递增的主键列已达到其最大限制 +2147483647。意味着该表中有大约 20 亿条记录。由于该表中的二进制列,它255 GB在磁盘上有大约大小。
现在,由于该数据类型限制,对该表的所有插入都已停止。逻辑解决方案是我们将该主键列转换为bigint. 但是由于ALTER TABLE命令的大小总是失败,有时甚至数据库进入不一致的状态,我们根本无法访问该表。
使用的语句:
ALTER TABLE table_name ALTER COLUMN id SET DATA TYPE bigint ;
Run Code Online (Sandbox Code Playgroud)
任何人都有任何建议来解决这个问题。
我是一名 SQL Server 意外 DBA,他继承了一些数据库,并试图设置基线阈值来监视这些服务器。
有谁知道解决这个问题的好方法?
我希望做的事情如下:我想在每个 SQL Server 实例上捕获不同的指标,这样当我们遇到问题时,我总是可以回到基线并查看它的变化之处。我想以此作为故障排除的起点。
我有这个查询:
SELECT my_code
FROM ranges
WHERE 123456789 BETWEEN first_number AND last_number
ORDER BY type_of_code ASC LIMIT 1 ;
Run Code Online (Sandbox Code Playgroud)
我的问题是,它会在ORDER BY从WHERE子句中选择行之后运行吗?
我KEY在first_number和last_number。我的桌子大约有 500 万行。我不想ORDER BY先。
我在 Postgres 中使用||运算符连接一些列运行查询,似乎其中一列为空,整个结果为空。这是正常||行为吗?
我的意思是“空白” NULL。
我有两个 DB2 表。
表 1,称为 EmployeeFile
EmployeeFile 有以下列: EMP_ID, FNAME, LNAME, DOB
数据如下所示:
EMP_ID, FNAME, LNAME, DOB
- GB2342, John, Smith, 1970-12-10
- L3243C, Jane, Jones, 1969-11-09
Run Code Online (Sandbox Code Playgroud)
表2,称为 OriginalData
OriginalData有以下列:INTERNAL_ID, FNAME, LNAME, DOB.
数据如下所示:
INTERNAL_ID, FNAME, LNAME, DOB
- 6575678588, Jane, Jones, 1969-11-09
- 1232145564, Rob, Mitchell, 1968-10-08
- 3452345345, John, Smith, 1970-12-10
- 6786478568, John, Smith, 1970-12-10
Run Code Online (Sandbox Code Playgroud)
我想说明的所有行EmployeeFile的该(FNAME, LNAME, DOB)组合只发生一次OriginalData。
例如,如果我在上面显示的示例数据集上运行查询,它应该只返回以下行:
我不想要“John Smith”,因为尽管他存在于 中EmployeeFile,但他的(FNAME, LNAME, DOB) …
我有以下数据:
| 机构_编号 | 信用类型 |
|---|---|
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
我有一个列表框,以便用户可以选择多个 Cred_type,他们希望能够选择 OR 或 AND 条件。
对于 OR 我有这样的 AND CRED_TYPE IN (1,2)
对于AND,我真是摸不着头脑。他们的意思是,他们想要一份具有cred type 1和cred_type 2的机构列表。也许我没有想清楚,但这是逐行的,所以这样做会导致没有结果。
AND cred_type = 1 AND cred_type = 2 -- 您不能让一行有两个不同的值,这将不会返回任何结果。
它们要求用户可以选择 10、20 或更多,因此为每个代码编写一堆代码并将它们组合起来非常困难 - 但这是我迄今为止唯一的想法。会是这样的
Select institution_no from table where cred_type = 1
UNION
Select institution_no from table where cred_type = 2
Run Code Online (Sandbox Code Playgroud)
-- 这会将两者结合起来并得到我想要的东西,但你可以想象其中 10 或 20 个的所有代码。
postgresql ×3
sql-server ×3
db2 ×1
foreign-key ×1
jobs ×1
mysql ×1
operator ×1
optimization ×1
oracle ×1
order-by ×1
primary-key ×1
transaction ×1
where ×1