我正在使用Python写入一个postgres数据库: sql_string = "INSERT INTO hundred (name,name_slug,status) VALUES (" sql_string += hundred + ", '" + hundred_slug + "', " + status + ");" cursor.execute(sql_string) 但是,因为我的一些行是相同的,我得到以下错误: psycopg2.IntegrityError: duplicate key value violates unique constraint "hundred_pkey" 我怎样才能写一个“INSERT,除非这行已经存在”SQL语句? 我已经看到了像这样推荐的复杂的语句: IF EXISTS (SELECT * FROM invoices WHERE invoiceid = '12345') UPDATE invoices SET billed = 'TRUE' WHERE invoiceid = […]
我想知道是否有一个SQL Serverpipe理工作室的插件/工具,将格式化您的SQL? 我正在处理一些大型的存储过程,这是一个格式错误的SQL乱七八糟的乱七八糟,如果我可以去“全选 – >格式化SQL”
是否有轨道的方式来validation实际logging是唯一的,而不只是一列? 例如,一个友谊模型/表格应该不能有多个相同的logging,例如: user_id: 10 | friend_id: 20 user_id: 10 | friend_id: 20
我在我的一个Sql(2008)存储过程中执行完美的以下代码: CREATE PROCEDURE [dbo].[Item_AddItem] @CustomerId uniqueidentifier, @Description nvarchar(100), @Type int, @Username nvarchar(100), AS BEGIN DECLARE @TopRelatedItemId uniqueidentifier; SET @TopRelatedItemId = ( SELECT top(1) RelatedItemId FROM RelatedItems WHERE CustomerId = @CustomerId ) DECLARE @TempItem TABLE ( ItemId uniqueidentifier, CustomerId uniqueidentifier, Description nvarchar(100), Type int, Username nvarchar(100), TimeStamp datetime ); INSERT INTO Item OUTPUT INSERTED.* INTO @TempItem […]
我有一个表中的列可能包含空值或空值。 如何检查表中存在的行是否为空或为空。 (eg null or '' or ' ' or ' ' and …)
我如何返回使用SQL Server 2008的表的列名? 即一个表包含这些列 – ID,名称,地址,国家和我想要返回这些数据。
我想写一个相当于这个SQL查询的Django查询: SELECT * from user where income >= 5000 or income is NULL. 如何构buildDjagno查询集filter? User.objects.filter(income__gte=5000, income=0) 这不起作用,因为它是filter。 我想ORfilter来获得单个查询集的联合。
我正在使用Sybase,我正在做一个select,它返回一个名为“iftype”的列,但它的types是int,我需要转换成varchar。 当我尝试做没有转换function的select,我得到这个错误: 错误代码257,SQL状态37000:不允许从数据types“VARCHAR”到“INT”的隐式转换。 使用CONVERT函数来运行此查询。 我不知道如何实现函数CONVERT 。 任何人都可以帮我吗?
每次都build立一个新的SQL表或为现有的表添加一个新的varchar列,我想知道一件事:什么是length的最佳值。 所以,可以说,你有一个名为typesvarchar的列。 所以,你必须select长度。 我想不出一个名字> 20个字符,但你永远不会知道。 但是不是用20,我总是凑到下一个2 ^ n的数字。 在这种情况下,我会select32作为长度。 我这样做,因为从计算机科学家的angular度来看,数字2 ^ n比其他数字看起来更even ,我只是假设下面的架构可以处理这些数字比其他数字略好。 另一方面,例如,当您select创build一个varchar列时,MSSQL服务器将默认长度值设置为50。 这让我思考。 为什么50? 是只是一个随机数,还是基于平均列长度,还是什么? 也可能是 – 也可能是 – 不同的SQL服务器实现(如MySQL,MSSQL,Postgres等)具有不同的最佳列长度值。
有什么命令可以在Postgres中查找所有的数据库大小吗? 我能够通过使用以下命令find特定数据库的大小: select pg_database_size('databaseName');