是否可以一次性从表中删除所有NOT NULL约束?
我有一个包含很多NOT NULL约束的大表,我正在寻找比单独删除它们更快的解决方案.
这是我的设置:
我有一个VirtualMachine(Ubuntu 14.04.LTS),其中运行PostgreSQL/PostGIS数据库.
使用QGIS中的Windows 7,我连接到此数据库并将要素图层加载到我的GIS项目中.
使用一些python代码,我创建了一个带有tile ID和一些信息的文件.
import os
import io
import time
layer=None
for lyr in QgsMapLayerRegistry.instance().mapLayers().values():
if lyr.name() == "fishnet_final":
layer = lyr
for f in layer.selectedFeatures():
pth = os.path.join(os.path.dirname(r'H:\path_to_file\'), str(f['name']) + "_" + str(time.strftime("%Y-%m-%d")) + "_" + str(f['country']) + ".txt")
fle = open(pth,'wb')
fle.writelines(str(f['name']))
fle.write('\n')
fle.write(str(time.strftime("%Y-%d-%m")))
fle.write('\n')
fle.write(str(f['country']))
fle.write('\n')
fle.close()
os.rename(pth, pth.replace(' ', ''))
Run Code Online (Sandbox Code Playgroud)
该文件具有以下权限:
-rwx------
Run Code Online (Sandbox Code Playgroud)
我想为我的群组和其他人设置相同的权限.
-rwxrwxrwx
Run Code Online (Sandbox Code Playgroud)
我试过了:
import shlex
command=shlex.split("chmod 777 r'H:\path_to_file\file.txt'")
subprocess.call(command)
Run Code Online (Sandbox Code Playgroud)
没有成功.
工作的是:
command=shlex.split("touch r'H:\path_to_file\file.txt'")
Run Code Online (Sandbox Code Playgroud)
要么
command=shlex.split("rm r'H:\path_to_file\file.txt'")
Run Code Online (Sandbox Code Playgroud)
为什么不能使用chmod命令?
在UNIX下我可以chmod这个文件,我和Windows中的用户一样.
我也尝试过os.chmod方法.但没有成功.
import os, …Run Code Online (Sandbox Code Playgroud) 我有一个包含大约 6000 个条目的表,我想为每个条目添加一个带有时间戳的列。从起始值(可以是 NOW())开始,更新应将每个条目的第一个值增加一小时。
'2014-12-04 01:00:00.000'
'2014-12-04 02:00:00.000'
'2014-12-04 03:00:00.000'
Run Code Online (Sandbox Code Playgroud)
我正在考虑一个窗口函数来做到这一点。
该表有一个唯一的id和一个几何索引(gid)。
我只想要带有标记数字的条目
1234
11 9834 55
6526347
11
207 555
777
34 3333 987
34678
我想从列表列表中删除重复项。对于嵌套列表中的每个第二个元素,第一个元素并不总是唯一的。第一个值对于整个列表列表是唯一的。这些数字在整个列表中只出现一次,但没有排序。
my_list = [[4, 'C'], [1, 'A'], [3, 'B'], [2, 'A'], [5, 'C']]
Run Code Online (Sandbox Code Playgroud)
删除重复项基于嵌套列表中的第二个元素。我需要每个唯一的第二个元素的最小值,例如:
my_unique_list = [[1, 'A'], [3, 'B'], [4, 'C']]
Run Code Online (Sandbox Code Playgroud)
输出的顺序无关紧要。
因此,选择1for 'A'(因为 1 小于 2 from [2, 'A'])、3for 'B'(没有其他值'B')和4for 'C'(因为 4 小于 5, from [5, 'C'])。