我从来没有为SQL Server"手动编码"对象创建代码,并且外键修改在SQL Server和Postgres之间看似不同.这是我的sql到目前为止:
drop table exams;
drop table question_bank;
drop table anwser_bank;
create table exams
(
exam_id uniqueidentifier primary key,
exam_name varchar(50),
);
create table question_bank
(
question_id uniqueidentifier primary key,
question_exam_id uniqueidentifier not null,
question_text varchar(1024) not null,
question_point_value decimal,
constraint question_exam_id foreign key references exams(exam_id)
);
create table anwser_bank
(
anwser_id uniqueidentifier primary key,
anwser_question_id uniqueidentifier,
anwser_text varchar(1024),
anwser_is_correct bit
);
Run Code Online (Sandbox Code Playgroud)
当我运行查询时,我收到此错误:
消息8139,级别16,状态0,行9外键中的引用列数与引用列的数量不同,表'question_bank'.
你能发现错误吗?
我想知道是否有一个SQL Server Management Studio的插件/工具可以格式化你的SQL?
我正在处理一些大型存储过程,这些过程是格式错误的SQL格式错误,如果我可以选择"全选 - >格式化SQL",那就太好了.
对于我开发的一些应用程序(然后继续忘记),我一直在编写纯SQL,主要用于MySQL.虽然我在SQLAlchemy中使用了python中的ORM ,但我并没有坚持使用它们.通常是文件或复杂性(从我的观点来看)阻碍了我.
我看是这样的:使用ORM来实现可移植性,如果它只是使用一种类型的数据库则使用普通SQL.在开发需要数据库支持的应用程序时,我真的在寻找何时使用ORM或SQL的建议.
考虑到这一点,使用轻量级包装来处理数据库不一致与使用ORM相比会好得多.
我有一个存储过程有三个参数,我一直在尝试使用以下命令返回结果:
context.Database.SqlQuery<myEntityType>("mySpName", param1, param2, param3);
Run Code Online (Sandbox Code Playgroud)
起初我尝试使用SqlParameter对象作为参数,但这不起作用并抛出SqlException以下消息:
过程或函数'mySpName'需要参数'@ param1',这是未提供的.
所以我的问题是你如何使用这个方法与期望参数的存储过程?
谢谢.
我有一张看起来像这个来电者'makerar'的桌子
cname | wmname | avg
--------+-------------+------------------------
canada | zoro | 2.0000000000000000
spain | luffy | 1.00000000000000000000
spain | usopp | 5.0000000000000000
Run Code Online (Sandbox Code Playgroud)
我想为每个cname选择最大平均值.
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
Run Code Online (Sandbox Code Playgroud)
但我会收到一个错误,
ERROR: column "makerar.wmname" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname;
Run Code Online (Sandbox Code Playgroud)
所以我这样做
SELECT cname, wmname, MAX(avg) FROM makerar GROUP BY cname, wmname;
Run Code Online (Sandbox Code Playgroud)
但这不会给出意图的结果,并显示下面的错误输出.
cname | wmname | max
--------+--------+------------------------
canada …Run Code Online (Sandbox Code Playgroud) 我有一个表,我想每个id拉一行,并且字段值连接在一起.
例如,在我的表中,我有这个:
TM67 | 4 | 32556
TM67 | 9 | 98200
TM67 | 72 | 22300
TM99 | 2 | 23009
TM99 | 3 | 11200
Run Code Online (Sandbox Code Playgroud)
我想输出:
TM67 | 4,9,72 | 32556,98200,22300
TM99 | 2,3 | 23009,11200
Run Code Online (Sandbox Code Playgroud)
在MySQL中,我能够使用聚合函数GROUP_CONCAT,但这似乎在这里不起作用...是否有等效的PostgreSQL,或其他方法来实现这一点?
我正在运行以下MySQL UPDATE语句:
mysql> update customer set account_import_id = 1;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
Run Code Online (Sandbox Code Playgroud)
我没有使用交易,为什么我会收到此错误?我甚至尝试重新启动我的MySQL服务器,它没有帮助.
该表有406,733行.
我有一个MySQL表,如下所示:
id | name | parent_id
19 | category1 | 0
20 | category2 | 19
21 | category3 | 20
22 | category4 | 21
......
Run Code Online (Sandbox Code Playgroud)
现在,我想要一个MySQL查询,我只提供id [例如说'id = 19']然后我应该得到它的所有子id [即结果应该有id',21,22']. ...而且,孩子们的等级不知道它可以变化....
另外,我已经有了使用for循环的解决方案.....如果可能的话,让我知道如何使用单个MySQL查询来实现相同的功能.
sql ×10
join ×2
mysql ×2
ado.net ×1
c# ×1
database ×1
formatting ×1
group-by ×1
group-concat ×1
lock-timeout ×1
orm ×1
postgresql ×1
sql-server ×1
ssms ×1
t-sql ×1
timeout ×1
union ×1