标签: sql

如何在SQL Server中创建外键?

我从来没有为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 t-sql sql-server

240
推荐指数
9
解决办法
44万
查看次数

SQL Management Studio的SQL Formatter

我想知道是否有一个SQL Server Management Studio的插件/工具可以格式化你的SQL?

我正在处理一些大型存储过程,这些过程是格式错误的SQL格式错误,如果我可以选择"全选 - >格式化SQL",那就太好了.

sql formatting ssms

240
推荐指数
10
解决办法
29万
查看次数

使用ORM或纯SQL?

对于我开发的一些应用程序(然后继续忘记),我一直在编写纯SQL,主要用于MySQL.虽然我在SQLAlchemy中使用了python中的ORM ,但我并没有坚持使用它们.通常是文件或复杂性(从我的观点来看)阻碍了我.

我看是这样的:使用ORM来实现可移植性,如果它只是使用一种类型的数据库则使用普通SQL.在开发需要数据库支持的应用程序时,我真的在寻找何时使用ORM或SQL的建议.

考虑到这一点,使用轻量级包装来处理数据库不一致与使用ORM相比会好得多.

sql language-agnostic orm

240
推荐指数
8
解决办法
9万
查看次数

JOIN和UNION有什么区别?

JOIN和之间有什么区别UNION?我能举个例子吗?

sql database union join

240
推荐指数
8
解决办法
39万
查看次数

如何使用存储过程DbContext.Database.SqlQuery <TElement>(sql,params)?EF Code First CTP5

我有一个存储过程有三个参数,我一直在尝试使用以下命令返回结果:

context.Database.SqlQuery<myEntityType>("mySpName", param1, param2, param3);
Run Code Online (Sandbox Code Playgroud)

起初我尝试使用SqlParameter对象作为参数,但这不起作用并抛出SqlException以下消息:

过程或函数'mySpName'需要参数'@ param1',这是未提供的.

所以我的问题是你如何使用这个方法与期望参数的存储过程?

谢谢.

c# sql ado.net linq-to-entities entity-framework-ctp5

240
推荐指数
6
解决办法
30万
查看次数

必须出现在GROUP BY子句中或用于聚合函数

我有一张看起来像这个来电者'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)

sql group-by aggregate-functions postgresql-9.1

240
推荐指数
5
解决办法
27万
查看次数

SQL JOIN和不同类型的JOIN

什么是SQL JOIN,什么是不同类型?

sql join

238
推荐指数
5
解决办法
36万
查看次数

Postgresql GROUP_CONCAT等价?

我有一个表,我想每个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,或其他方法来实现这一点?

sql postgresql group-concat string-aggregation

237
推荐指数
5
解决办法
14万
查看次数

获取"超过锁定等待超时;尝试重新启动事务"即使我没有使用事务

我正在运行以下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 sql timeout lock-timeout

237
推荐指数
10
解决办法
54万
查看次数

如何创建MySQL分层递归查询

我有一个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查询来实现相同的功能.

mysql sql recursive-query hierarchical-data

237
推荐指数
9
解决办法
25万
查看次数