1.DOS命令查看;
xp及win7下可点击电脑左下角,开始图标,点击搜索框或点击运行;或按着电脑win键+r键可打开运行输入框,输入“cmd”命令,如图所示;
在弹出的窗口输入命令:“ipconfig/all”,然后按下回车即可。
2.删除表单后,所依赖的触发器同步删除;不能在使用触发器自动创建新的触发器
-- test 1
-- tgr 删除表单后,所依赖的触发器同步删除 ---- Yes
IF (OBJECT_ID('tgr_tt', 'TR') IS NOT NULL)
DROP TRIGGER tgr_tt
GO
CREATE TRIGGER tgr_tt
ON Actions
AFTER insert,update,delete
AS
BEGIN
SELECT 1 AS 'tgr_tt_1'
END
-- test2
-- tgr 自动创建触发器 -- 不存在 ----- No
IF (OBJECT_ID('tgr_tt_insteadOf', 'TR') IS NOT NULL)
DROP TRIGGER tgr_tt_insteadOf
GO
CREATE TRIGGER tgr_tt_insteadOf
ON Actions
after insert
AS
CREATE TRIGGER tgr_tt
ON Actions
AFTER insert,update,delete
AS
BEGIN
SELECT 1 AS 'tgr_tt_1'
END
GO
3.py + sql
- drop_duplicates的参数subset可以为单列或多列
- python中的NaT与SQL中的NULL不能自由转换,使用isinstance + pd.NaT判定后手动转换
- sql中与python单双引号可以嵌套不一样,sql中遇到单引号中包含单引号直接使用两个单引号
@cost_time
def update_basicInfo():
'基本信息更新'
lis1 = ['URL', '缴费到期日', 'channel', '网站名称',
'主体到期日', '状态', '开户日']
# 3.0 筛选,仅对lis1中在icrm发生了更新了的账户
# 3.1 筛选前更新全部数据 筛选后预估<<1000
# 3.2 --重新从数据库中读取数据,并以更新列完全去重; --后以用户名保留首位去重
#
df_db = df('basicInfo_20191015t')
df1 = df_b.append(df_db, sort=False)
df1.drop_duplicates(lis1, keep=False, inplace=True)
df1.drop_duplicates('用户名', keep='first', inplace=True)
# 开始更新
try:
for n, i in enumerate(df1[lis1].values):
sql_ = ''' UPDATE basicInfo_20191015t
SET URL='{}', 加V缴费到期日='{}', 端口='{}', 网站名称='{}', 主体资质到期日='{}', 今日账户状态='{}', 开户日期='{}'
WHERE Id={}
'''
# 1. py中NaT & sql中NULL不兼容
if isinstance(i[1], type(pd.NaT)):
i[1] = 'NULL'
sql_ = sql_.replace("加V缴费到期日='{}'", "加V缴费到期日={}")
if isinstance(i[4], type(pd.NaT)):
i[4] = 'NULL'
sql_ = sql_.replace("主体资质到期日='{}'", "主体资质到期日={}")
if isinstance(i[6], type(pd.NaT)):
i[6] = 'NULL'
sql_ = sql_.replace("开户日期='{}'", "开户日期={}")
# 2.0. py中,可以使用双引号"&单引号'之间的嵌套
# 2.1. sql中,'一般均用两个''替代
#
if isinstance(i[3], str) and "'" in i[3]:
i[3] = i[3].replace("'", "''")
sql = sql_.format(i[0], i[1], i[2], i[3], i[4], i[5], i[6], str(n))
engine.execute(sql)
except Exception as e:
print(e)
else:
print('更新正常')
4.pip install异常
解:
1.在国标码(GBK)与UTF-8之间选择出了问题
- 直接按提示找到对应文件…\Pyhon\Lib\site-packages\pip\compat_init_.py
- 修改 decode后的
utf-8
->gbk
2.设置了decode()
第二个参数为严格’strick’,改为’ignore’即可。