查- 问题集

30 篇文章 0 订阅

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’即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值