标签: sql

使用预准备语句进行SQL注入?

如果我没记错的话,我认为Jeff在Stack Overflow播客中提到了SQL预处理语句中可能存在的弱点.我想知道他所指的是哪种弱点?它可能只是关于它的不当使用,还是更险恶的东西?

在我记忆中,播客没有更深入地探讨这个主题,它只是一句话.

sql sql-injection prepared-statement

11
推荐指数
2
解决办法
1万
查看次数

Python,将9元组UTC日期转换为MySQL日期时间格式

我正在使用此处指定的格式解析RSS提要:http://www.feedparser.org/docs/date-parsing.html

日期元组(2009,3,23,13,6,34,0,82,0)

我有点难以理解如何将其转换为MySQL日期时间格式(Ymd H:M:S)?

python mysql sql datetime tuples

11
推荐指数
1
解决办法
4972
查看次数

11
推荐指数
2
解决办法
3312
查看次数

如何处理java enum和数据库表之间的重复?

在我们的应用程序中,一个实体必须由枚举表示:例如类型,类别,状态等等.

通常,代码中存在使用值来决定一个动作或另一个动作的条件或流程,因此必须以某种方式为应用程序"知道"值(即它必须能够引用特定实例)决定而不是引用整体的类).这就是我们使用枚举而不仅仅是常规类的原因.

问题是这些实体还需要作为其他实体的字段存储(或至少引用)在数据库中.我们通常为每个实体创建一个表,能够在这些列中进行参考完整性检查,并且数据在数据库中只具有"含义",而无需参考枚举来找出每个id的含义.

理想情况下,应该从枚举中的数据填充这些实体的数据,但是现在我们在db初始化脚本中重复了这些值.

当使用像Hibernate这样的ORM时,它会变得有点复杂.

我想知道其他人是如何处理这种情况的.

我对枚举和数据库表之间有重复的想法不太满意,但我还没有找到更好的解决方案.

java sql database orm enums

11
推荐指数
1
解决办法
3201
查看次数

快速SQL问题:在H2中创建具有主键的表的正确语法?

我目前正在使用H2数据库启动一个新的Java应用程序,但是我对创建表的基本SQL使用感到困惑.如何使用唯一的,自动递增的,非空的整数主键创建条目表(字符串)?这是最基本的事情之一,但我不确定用H2做正确的方法是什么.

我责备这些因为我的困惑(指定了不同数据库之间做同样事情的不止一种方式;但是无法想出H2的正确方法):http: //www.w3schools.com/Sql/sql_primarykey.asp http ://www.w3schools.com/Sql/sql_autoincrement.asp

sql database h2 create-table

11
推荐指数
1
解决办法
1万
查看次数

为什么Oracle认为我错过了一个正确的括号?

在Oracle 10i中,我运行以下命令:

ALTER TABLE jnrvwchnglst ADD
     ( jnrvwchnglst_userid NUMBER(10) NOT NULL DEFAULT 1 )
Run Code Online (Sandbox Code Playgroud)

jnrvwchnglst现有表,jnrvwchnglst_userid不是现有列.

Oracle错误消息是:

ORA-00907: missing right parenthesis
Run Code Online (Sandbox Code Playgroud)

这个查询有什么问题,为什么Oracle认为我错过了一个括号?

sql oracle ora-00907

11
推荐指数
1
解决办法
1万
查看次数

快速备份SQL SP和函数的方法?

我的SQL服务器数据库中有很长的SP(存储过程)和函数列表.我可以通过右键单击并将XXX脚本改为Alter To来逐个保存它们.有没有办法在TSQL中查询所有SP和函数将它们保存到xxx.sql文件?

例如,对于sp_mySP1,我想将其保存到sp_mySP1.sql,这是一个文本文件.数据库太大了,我想只保存SP和函数作为源代码的备份.

sql t-sql sql-server

11
推荐指数
1
解决办法
2万
查看次数

查找是否因为重复而抛出了SQLException

我有一个与数据库无关的Java程序,我需要知道,在插入时,如果由于重复键而抛出了SQLException.

如果我使用单个数据库驱动程序,我只会使用ErrorCode,但由于我可以使用非常不同的引擎,因此ErrorCode不一样.

有没有人这样做过?有任何想法吗?

很多TIA!

编辑:我有一个配置文件,我存储驱动程序类(即:org.apache.derby.jdbc.ClientDriver)和一些其他所需的信息(即:用户名,密码,网址...).连接总是作为"java.SQL.Connection"传递,所以我真的不关心使用什么驱动程序.

java sql exception

11
推荐指数
2
解决办法
2万
查看次数

TSQL:使用INSERT INTO SELECT FROM更新

所以我有一个旧的数据库,我正在迁移到一个新的数据库.新的架构略有不同但大部分兼容.另外,我想从零重新编号所有表.

目前我一直在使用我编写的工具,手动检索旧记录,将其插入新数据库,并更新旧数据库中的v2 ID字段,以在新数据库中显示其对应的ID位置.

例如,我从MV5.Posts中选择并插入MV6.Posts.插入后,我在MV6.Posts中检索新行的ID,并在旧的MV5.Posts.MV6ID字段中更新它.

有没有办法通过INSERT INTO SELECT FROM执行此UPDATE所以我不必手动处理每个记录?我正在使用SQL Server 2005,dev版.

c# sql t-sql migration bulkinsert

11
推荐指数
2
解决办法
4万
查看次数

SQL Server中大型数据集的慢速独特查询

我们使用SQL Server 2005来跟踪相当数量的不断传入的数据(每秒5-15次更新).我们注意到它已经生产了几个月后,其中一个表开始花费大量的时间来查询.

该表有3列:

  • id - 自动编号(群集)
  • typeUUID - 插入发生之前生成的GUID; 用于将类型组合在一起
  • typeName - 类型名称(duh ......)

我们运行的查询之一是该typeName领域的一个独特的:

SELECT DISTINCT [typeName] FROM [types] WITH (nolock);
Run Code Online (Sandbox Code Playgroud)

typeName字段上有一个非clusted,非唯一的升序索引.该表目前包含大约200M条记录.当我们运行此查询时,查询需要5米58秒才能返回!或许我们不理解的指标是如何工作的.但我不认为我们错误地理解它们多少.

为了进一步测试,我们运行了以下查询:

SELECT DISTINCT [typeName] FROM (SELECT TOP 1000000 [typeName] FROM [types] WITH (nolock)) AS [subtbl]
Run Code Online (Sandbox Code Playgroud)

这个查询在大约10秒内返回,正如我所料,它正在扫描表格.

我们在这里缺少什么?为什么第一个查询需要这么长时间?

编辑:啊,我的道歉,第一个查询返回76条记录,谢谢你ninesided.

跟进:谢谢大家的回答,现在对我来说更有意义(我不知道为什么之前没有......).没有索引,它正在对200M行进行表扫描,带有索引,它正在对200M行进行索引扫描......

SQL Server确实更喜欢索引,它确实提供了一点性能提升,但没什么好兴奋的.重建索引确实将查询时间缩短到超过3米而不是6米,这是一项改进,但还不够.我只是向老板推荐我们规范表格结构.

再一次,谢谢大家的帮助!!

sql sql-server sql-server-2005

11
推荐指数
2
解决办法
2万
查看次数