MySQL . column_key

1. 如果Key是空的, 那么该列值的可以重复, 表示该列没有索引, 或者是一个非唯一的复合索引的非前导列
2. 如果Key是PRI,  那么该列是主键的组成部分
3. 如果Key是UNI,  那么该列是一个唯一值索引的第一列(前导列),并别不能含有空值(NULL)
4. 如果Key是MUL,  那么该列的值可以重复, 该列是一个非唯一索引的前导列(第一列)或者是一个唯一性索引的组成部分但是可以含有空值NULL

如果对于一个列的定义,同时满足上述4种情况的多种,比如一个列既是PRI,又是UNI
那么"desc 表名"的时候,显示的Key值按照优先级来显示 PRI->UNI->MUL
那么此时,显示PRI

一个唯一性索引列可以显示为PRI,并且该列不能含有空值,同时该表没有主键

一个唯一性索引列可以显示为MUL, 如果多列构成了一个唯一性复合索引
因为虽然索引的多列组合是唯一的,比如ID+NAME是唯一的,但是没一个单独的列依然可以有重复的值
只要ID+NAME是唯一的即可
根据你提供的代码,似乎有一个语法错误。在类News中的__repr__方法中,self.cntent应该改为self.content才能正确输出。修改后的代码如下: ``` from flask import Flask from flask_sqlalchemy import SQLAlchemy from datetime import datetime app = Flask(__name__) HOSTNAME = '127.0.0.1' PORT = '3306' DATABASE = 'new' USERNAME = 'root' PASSWORD = '123456' DB_URI = 'mysql+pymysql://{username}:{password}@{host}:{port}/{database}?charset=utf8'.format( username=USERNAME, password=PASSWORD, host=HOSTNAME, port=PORT, database=DATABASE) app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI db = SQLAlchemy(app) class News(db.Model): __tablename__ = 'news' id = db.Column(db.Integer, autoincrement=True, primary_key=True) title = db.Column(db.String(50), nullable=False) content = db.Column(db.Text) time = db.Column(db.DateTime, default=datetime.now) author = db.Column(db.String(50), nullable=False) def __repr__(self): return '<News(title:%s,content:%s,time:%s,author:%s)>'%(self.title, self.content, self.time, self.author) with app.app_context(): db.drop_all() db.create_all() with app.app_context(): news1 = News(title='web开发', content='基于python的web开发技术', author='flask') news2 = News(title='web前端', content='Bootstrap前端开发框架', author='bootstrap') db.session.add_all([news1,news2]) db.session.commit() with app.app_context(): news = db.session.query(News).filter(News.author=='bootstrap').all() print(news) ``` 请检查代码中是否存在其他语法错误或配置错误,例如数据库连接配置是否正确。同时,建议使用try-except语句来捕获异常并输出错误信息,以便更好地排查问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值