2016-12-26 5 views
0

В настоящее время я изучаю основы создания базы данных и выполнения некоторой линейки анализа данных. я изо всех сил пытался понять, как «начать кодирование» , поэтому я, наконец, решил придумать простой дневник, чтобы начать мою жизнь кодирования.Ошибка обучения MySQL/Python

Вот что я до сих пор в терминах 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) 

вот вопрос наконец :): Это правильно, если я сделать время штамповать первичный ключ, или это более «безошибочной базы данных» для создания фактического идентификатора вместо использования автоматизированной метки в качестве рк ?

также я пытаюсь сделать поле TASK_COMMENTS не нулевой Aswell, но я получаю это:

mysql> ALTER TABLE Diary MODIFY COLUMN TASK_COMMENTS VARCHAR(255) NOT NULL; 
ERROR 1138 (22004): Invalid use of NULL value 

Спасибо за помощь.

ответ

0

Вы не можете изменить значение по умолчанию для столбца на NOT NULL, если значение NULL уже существует. Либо удалите строку, либо установите ее на что-то, тогда вы можете изменить столбец.

Использование временной метки не является хорошей идеей для первичного ключа, потому что очень возможно получить повторяющиеся значения. Это также легко не делать, но это просто не очень хорошая идея. Используйте столбец идентификатора, установите PK, и обычно он даст ему AUTO INCREMENT, чтобы не было дубликатов.

+0

Спасибо за ответ, но как этот личный дневник может создавать повторяющиеся значения, когда метка времени подсчитывает даже секунды. Человек не может сделать 2 журнала задач в точную секунду, может ли он? – dbOpposer16

+0

Спасибо, теперь это намного больше смысла, я думал только о себе и о единственном пользователе, но с гораздо большим количеством пользователей, использующих это, потребуется идентификатор. – dbOpposer16