我在我的一个项目中使用SQLite3,我需要确保插入到表中的行对于它们的一些列的组合是唯一的.在大多数情况下,插入的行在这方面会有所不同,但如果匹配,新行必须更新/替换现有行.
显而易见的解决方案是使用复合主键,并使用conflict子句来处理冲突.在此之前:
CREATE TABLE Event (Id INTEGER, Fld0 TEXT, Fld1 INTEGER, Fld2 TEXT, Fld3 TEXT, Fld4 TEXT, Fld5 TEXT, Fld6 TEXT);
Run Code Online (Sandbox Code Playgroud)
成了这个:
CREATE TABLE Event (Id INTEGER, Fld0 TEXT, Fld1 INTEGER, Fld2 TEXT, Fld3 TEXT, Fld4 TEXT, Fld5 TEXT, Fld6 TEXT, PRIMARY KEY (Fld0, Fld2, Fld3) ON CONFLICT REPLACE);
Run Code Online (Sandbox Code Playgroud)
这确实强制执行我需要它的唯一性约束.不幸的是,这种变化也会导致性能损失超出我的预期.我使用sqlite3命令行实用程序进行了一些测试,以确保我的其余代码中没有错误.测试涉及在单个事务中或在每个1,000行的100个事务中输入100,000行.我得到了以下结果:
| 1 * 100,000 | 10 * 10,000 | 100 * 1,000 |
|---------------|---------------|---------------|
| Time | CPU | Time | CPU | Time | CPU …Run Code Online (Sandbox Code Playgroud) 我正在寻找实现list extend函数版本的最pythonic方法,它扩展到给定的索引而不是列表的末尾.
a_list = [ "I", "rad", "list" ]
b_list = [ "am", "a" ]
a_list.my_extend( b_list, 1 ) # insert the items from b_list into a_list at index 1
print( a_list ) # would output: ['I', 'am', 'a', 'rad', 'list']
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有建立新列表的情况下这样做?
a_list = [ "I", "rad", "list" ]
b_list = [ "am", "a" ]
c_list = []
c_list.extend( a_list[:1] )
c_list.extend( b_list )
c_list.extend( a_list[1:] )
print( c_list ) # outputs: ['I', 'am', 'a', 'rad', 'list']
Run Code Online (Sandbox Code Playgroud)
这种方法实际上并不是那么糟糕,但我预感到它可能会更容易.可以吗?
我正在编写ac#代码,我从数据库中获取值并使用它.我面临的问题如下.
如果我从数据库中获取的值是:
string cat1 = "sotheby's";
Run Code Online (Sandbox Code Playgroud)
现在使用这个猫我想在单引号之前插入一个转义字符,为实现这一点,我写了下面的代码:
string cat1 = "sotheby's";
if (cat1.Contains("'")) {
var indexofquote = cat1.IndexOf("'");
cat1.Insert(indexofquote-1,"\");
var cat2 = cat1;
}
Run Code Online (Sandbox Code Playgroud)
插入行中的错误上升,反斜杠(转义字符).错误是常量中的新行.请帮我解决这个错误.
我创建了一个LINQ to SQL datacontext,其中包含一个数据表.我试图简单地在该表中插入一条新记录.我遇到的问题是LINQ没有提供Add方法来传递新记录.我看过无数的例子,其中有一个Add方法,但我似乎无法得到它.我完全错过了某些东西还是其他东西?
using (praetoriaTestDataContext db = new praetoriaTestDataContext())
{
PageHit hit = new PageHit();
hit.DateViewed = DateTime.Now;
hit.Page = "test";
db.PageHits.Add(hit); //Add method is not available!
db.SubmitChanges();
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
首先:我理解这个错误意味着什么 - 我没有尝试解决它的一个实例.
众所周知,这个错误很难排除故障,因为如果你将100万行插入100列宽的表中,几乎无法确定导致错误的行的哪一列 - 你必须修改你的进程以插入一行一次,然后看看哪一个失败了.说得客气一点,这是一种痛苦.
是否有任何理由错误看起来不像这样?
String or Binary data would be truncated
Error inserting value "Some 18 char value" into SomeTable.SomeColumn VARCHAR(10)
Run Code Online (Sandbox Code Playgroud)
如果不是表结构本身,这将使查找和更正值变得容易得多.如果看到表数据是一个安全问题,那么可能是通用的,比如给出尝试值的长度和失败列的名称?
在我的LiveCode Server应用程序中,我在插入时返回了一个dberr,但没有明确的错误代码.
我去了一个终端,用手Postgres手工插入.
%My_Dbase=# INSERT INTO new-table (first_name, last_name, anonymous) VALUES ('batman', 'Moonboy', TRUE);
Run Code Online (Sandbox Code Playgroud)
psql进程返回:
INSERT 0 1
Run Code Online (Sandbox Code Playgroud)
这条线是什么意思?除了主表之外,我还有一个序列来递增主表的主键ID(int).
如果我检查数据,插入数据,主键增加1,一切似乎都很好,我不知道为什么我的应用程序返回错误(可能是应用程序或我的代码中的错误).
但如果我知道这INSERT 0 1意味着什么,那将有助于我向自己保证:
0 1表示某种错误.如果有人有PostgreSQL文档的链接,告诉我们这些服务器响应参数是什么,我会研究它...我到处寻找.
如何将嵌套的xml文件加载到数据库表中?
<?xml version="1.0" ?>
<person>
<row>
<name>Tom</name>
<Address>
<State>California</State>
<City>Los angeles</City>
</Address>
</row>
<row>
<name>Jim</name>
<Address>
<State>California</State>
<City>Los angeles</City>
</Address>
</row>
</person>
Run Code Online (Sandbox Code Playgroud)
在这个xml中,person是表名,name是归档名,Tom是其归档值.地址是一个子表,状态和城市是地址内的两列.我想将person行插入到person表中,如果失败,请不要插入到地址表中.这个xml可能非常大.这样做的最佳解决方案是什么?
如何在表中插入多个数据记录而忽略重复项.我正在使用SQLAlchemy.
谢谢!
我正在尝试在mysiteurl/_layouts /中插入一些数据
因为我不得不使用第三方软件,它使用存储在该文件夹中的数据...我是该机器的管理员(Windows Server 2008R2上的Sharepoint 2010),但Sharepoint说我无法直接访问该文件夹...
是否有任何技巧在该特定文件夹中插入数据?
我正在将".jpg"文件添加到我的Excel工作表中,代码如下:
'Add picture to excel
xlApp.Cells(i, 20).Select
xlApp.ActiveSheet.Pictures.Insert(picPath).Select
'Calgulate new picture size
With xlApp.Selection.ShapeRange
.LockAspectRatio = msoTrue
.Width = 75
.Height = 100
End With
'Resize and make printable
With xlApp.Selection
.Placement = 1 'xlMoveAndSize
'.Placement = 2 'xlMove
'.Placement = 3 'xlFreeFloating
.PrintObject = True
End With
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么,但它没有插入到正确的单元格中,所以我应该怎么做才能将这张图片放入Excel中的指定单元格?
insert ×10
c# ×2
python ×2
.net ×1
database ×1
excel ×1
ignore ×1
image ×1
layout ×1
linq-to-sql ×1
list ×1
oracle ×1
performance ×1
plsql ×1
postgresql ×1
sharepoint ×1
sql ×1
sql-server ×1
sqlalchemy ×1
sqlite ×1
string ×1
vba ×1
xml ×1
xml-parsing ×1