Questions tagged «sql»

结构化查询语言(SQL)是用于查询数据库的语言。问题应包括代码示例,表结构,示例数据以及正在使用的DBMS实现的标签(例如MySQL,PostgreSQL,Oracle,MS SQL Server,IBM DB2等)。如果您的问题仅涉及特定的DBMS(使用特定的扩展名/功能),请改用该DBMS的标签。使用SQL标记的问题的答案应使用ISO / IEC标准SQL。

6
将列添加到表,然后在事务内更新它
我正在创建一个将在MS SQL服务器中运行的脚本。该脚本将运行多个语句,并且需要进行事务处理,如果其中一个语句失败,则将停止整体执行并回滚所有更改。 在发出ALTER TABLE语句向表中添加列,然后更新新添加的列时,我在创建此事务模型时遇到了麻烦。为了立即访问新添加的列,我使用GO命令执行ALTER TABLE语句,然后调用我的UPDATE语句。我面临的问题是我无法在IF语句中发出GO命令。在我的交易模型中,IF语句很重要。这是我尝试运行的脚本的示例代码。还请注意,发出GO命令将丢弃@errorCode变量,并且需要在使用之前在代码中声明下来(此代码不在下面的代码中)。 BEGIN TRANSACTION DECLARE @errorCode INT SET @errorCode = @@ERROR -- ********************************** -- * Settings -- ********************************** IF @errorCode = 0 BEGIN BEGIN TRY ALTER TABLE Color ADD [CodeID] [uniqueidentifier] NOT NULL DEFAULT ('{00000000-0000-0000-0000-000000000000}') GO END TRY BEGIN CATCH SET @errorCode = @@ERROR END CATCH END …

2
我可以在准备好的语句中参数化表名吗?
我已经多次使用mysqli_stmt_bind_param函数。但是,如果我分开试图防止SQL注入的变量,则会遇到错误。 这是一些代码示例: function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, $category, $overall, $protocol ) { $statement = $mysqli->prepare("INSERT INTO " .$new_table . " VALUES (?,?,?,?,?,?,?);"); mysqli_stmt_bind_param( $statment, 'sssisss', $Partner, $Merchant, $ips, $score, $category, $overall, $protocol ); $statement->execute(); } 是否可以通过某种方式.$new_table.用另一个问号语句替换串联,制作另一个绑定参数语句或添加到现有的语句中以防止SQL注入? 像这样或某种形式: function insertRow( $db, $mysqli, $new_table, $Partner, $Merchant, $ips, $score, …
71 php  mysql  sql 


16
从C#中的存储过程获取返回值
我有以下查询: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[Validate] @a varchar(50), @b varchar(50) output AS SET @Password = (SELECT Password FROM dbo.tblUser WHERE Login = @a) RETURN @b GO 这样编译就可以了。我想执行此查询并获取返回值。我的代码如下: SqlConnection SqlConn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MyLocalSQLServer"].ConnectionString.ToString()); System.Data.SqlClient.SqlCommand sqlcomm = new System.Data.SqlClient.SqlCommand("Validate", SqlConn); string returnValue = string.Empty; try { SqlConn.Open(); …
71 c#  sql  sql-server 


6
围绕单个语句的事务有什么作用?
我了解交易对于协调一对更新可能会很有用。我不了解的是将单个语句包装在事务中,这是我见过的90%。实际上,在现实生活中,以我的经验,找到一系列逻辑相关的事务(每个事务都包装在自己的事务中)是很常见的,但是整个事务并没有包装。 在MS-SQL中,在事务中包装单选,单更新,单插入或单删除有什么好处? 我怀疑这是迷信编程。

13
简单检查SELECT查询是否为空结果
谁能指出如何检查选择查询是否返回非空结果集? 例如,我有下一个查询: SELECT * FROM service s WHERE s.service_id = ?; 我应该像下面那样做吗: ISNULL(SELECT * FROM service s WHERE s.service_id = ?) 测试结果集是否不为空?

10
使用JDBC进行批处理INSERTS的有效方法
在我的应用程序中,我需要执行很多插入操作。它是一个Java应用程序,我正在使用普通的JDBC执行查询。该数据库是Oracle。我已经启用了批处理,所以它节省了我执行查询所需要的网络延迟。但是查询作为独立的INSERT顺序执行: insert into some_table (col1, col2) values (val1, val2) insert into some_table (col1, col2) values (val3, val4) insert into some_table (col1, col2) values (val5, val6) 我想知道以下形式的INSERT是否会更有效: insert into some_table (col1, col2) values (val1, val2), (val3, val4), (val5, val6) 即将多个INSERT折叠成一个。 还有其他使批处理INSERT更快的技巧吗?
71 java  sql  performance  jdbc 

6
如何在MySQL中正确使用CASE..WHEN
这是一个演示查询,请注意,它非常简单,仅在base_price为0的地方获取,并且仍然选择条件3: SELECT CASE course_enrollment_settings.base_price WHEN course_enrollment_settings.base_price = 0 THEN 1 WHEN course_enrollment_settings.base_price<101 THEN 2 WHEN course_enrollment_settings.base_price>100 AND course_enrollment_settings.base_price<201 THEN 3 ELSE 6 END AS 'calc_base_price', course_enrollment_settings.base_price FROM course_enrollment_settings WHERE course_enrollment_settings.base_price = 0 base_price 是 decimal(8,0) 在数据库上运行此命令时,我得到: 3 0 3 0 3 0 3 0 3 0

5
MySQL中列名“ order”的替代方法
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 7年前关闭。 改善这个问题 当我创建一个需要用户定义排序的新表时,我的第一个主意总是转到列名“ order”。当然,这不是一个好字,因为它是保留字。 您要为数据库模型中的该列指定哪个名称? 谢谢你的帮助。
71 mysql  sql 



19
CURRENT_TIMESTAMP(以毫秒为单位)
有什么办法可以使时间戳记中的毫秒数变为MySql或PostgreSql(或出于好奇而使其他时间)变为毫秒数? SELECT CURRENT_TIMESTAMP --> 2012-03-08 20:12:06.032572 是否有这样的事情: SELECT CURRENT_MILLISEC --> 1331255526000 或者,唯一的选择是使用DATEDIFF从era?

3
将Dbeaver上的结果集导出为CSV
通常,我在Windows上使用Dbeaver,并且总是像这样导出结果集: 运行我的查询->选择结果->导出结果集->选择导出到剪贴板->完成 此步骤将结果集放置到剪贴板中,并且可以将其粘贴到任何要使用它的地方。 问题是,现在我在Mac上使用dbeaver,并且本指南无法正常工作。我可以继续操作,直到选择下图所示的结果集为止: 但是,一旦我在此过程中走得更远,在最后一步中,我得到:没有查询 请注意,在“源”中假设显示了源自结果集的查询,但只说了“选择”。 结果,它不会选择我的结果或任何内容(“成功”除外)。 通常,我的查询会自动显示在这里,而我在菜单中找不到可以解决此问题的任何选项。
71 sql  csv  dbeaver 

5
在PostgreSQL中删除索引的唯一性
在我的PostgreSQL数据库中,我以这种方式创建了一个唯一索引: CREATE UNIQUE INDEX <my_index> ON <my_table> USING btree (my_column) 有没有办法更改索引以消除唯一约束?我查看了ALTER INDEX文档,但它似乎没有满足我的需求。 我知道我可以删除索引并创建另一个索引,但是我想找到一种更好的方法(如果存在)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.