我目前正在学习创建数据库和做一些数据分析的基础知识。我一直在努力理解如何“开始编码”,所以我最终决定想出一个简单的日记项目来启动我的编码生活。
这就是我到目前为止关于python的所有东西,除了我设法将python和mysql连接起来之外,什么都没有。
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| diary |
| mysql |
| performance_schema |
| sakila |
| sys |
| world |
+--------------------+
7 rows in set (0.00 sec)
mysql> desc diary;
+---------------+--------------+------+-----+-------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+--------------+------+-----+-------------------+-------+
| TASK_COMMENTS | varchar(255) | YES | | NULL | |
| TASK | varchar(55) | NO | | NULL | |
| TS | timestamp | NO | | CURRENT_TIMESTAMP | |
+---------------+--------------+------+-----+-------------------+-------+
3 rows in set (0.00 sec)
mysql> select * from diary;
+---------------+---------------+---------------------+
| TASK_COMMENTS | TASK | TS |
+---------------+---------------+---------------------+
| NULL | Food Shopping | 2016-12-25 18:53:32 |
+---------------+---------------+---------------------+
1 row in set (0.00 sec)这里是最后一个问题:):如果我将时间戳设为主键,是否正确,或者创建一个实际的id而不是使用自动时间戳作为pk更“无数据库错误”?
此外,我还试图使TASK_COMMENTS字段不为空,但我得到了如下结果:
mysql> ALTER TABLE Diary MODIFY COLUMN TASK_COMMENTS VARCHAR(255) NOT NULL;
ERROR 1138 (22004): Invalid use of NULL value谢谢你的帮助。
发布于 2016-12-26 08:21:34
如果NULL值已经存在,则不能将列的默认值更改为NOT NULL。要么删除该行,要么将其设置为某个值,然后就可以更改该列。
对于主键来说,使用时间戳不是一个好主意,因为很可能会得到重复的值。不这样做也很容易,但这不是一个好主意。使用id列,设置PK,通常会给它设置AUTO INCREMENT,以确保没有重复。
https://stackoverflow.com/questions/41325444
复制相似问题