pymysql.err.OperationalError: (1364, “Field ‘Id‘ doesn‘t have a default value“)

    def RegTeacher(self):
        ####注册教职工
        cur = self.conn.cursor()
        print()
        title = '    Register New Teacher'
        print(title)
        name = input('           Name:')
        number = input(' Teacher Number:')
        gender = input('         Gender:')
        birth = input('      Born Date:')
        pos = self.PrintPositionInfo()
        position = input('Position Number:')
        salary = input('         Salary:')
        cur = self.conn.cursor()
        sqlcmd = "insert into TeacherInfo(Name, TeacherNo, Gender, Birth, PositionNo, Salary) VALUES ('%s', '%s', '%s', '%s', %s, %s)" % (name, number, gender, birth, position, salary)
        res = cur.execute(sqlcmd)
        info = 'Register Success!'
        if res == 0:
            info = 'Register Fail!'
            self.conn.rollback()
        else:
            sqlcmd = 'select Password from DefaultPassword where AccountLevel = 1'
            if cur.execute(sqlcmd) == 0:
                info = 'Register Fail!'
                self.conn.rollback()
            else:
                pw = cur.fetchone()
                sqlcmd = "insert into LoginAccount(Account,Password,AccountLevel) values('%s','%s',1)" % (number, pw[0])
                if cur.execute(sqlcmd) == 0:
                    info = 'Register Fail!'
                    self.conn.rollback()
                else:
                    self.conn.commit()
        cur.close()
        return info

一个普通的兴建表行的代码但无论怎么运行后都会出现一样的错误

然后去网上找了一样的解决方案把数据库表调成自增

但无论怎么运行还是一样的错误,离谱的我试了手动给id赋值,用时间戳作为id插入,甚至直接把id赋值成1,运行后还是一样的错误,实在没辙了

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值