2016-12-26 56 views
0

我目前正在學習創建數據庫和做一些數據分析的基礎知識。我一直在努力瞭解如何'開始編碼' 所以我最終決定拿出一個簡單的日記項目來啓動我的編碼生活。MySQL/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 

謝謝你的幫助。

回答

0

如果NULL值已存在,則無法將列的默認值更改爲NOT NULL。要麼刪除該行,要麼將其設置爲某項,然後您可以更改該列。

對主鍵使用時間戳不是一個好主意,因爲它很有可能獲得重複的值。不容易,但它不是一個好主意。使用ID列,設置PK,通常會給它AUTO INCREMENT以確保沒有重複。

+0

感謝您的回覆,但是當時間戳記秒數時,這個個人日記如何創建重複值。他不能在2秒內完成2個任務日誌嗎? – dbOpposer16

+0

謝謝你現在有更多的意義,我只是認爲自己是唯一的用戶,但有更多的用戶使用這將需要一個id。 – dbOpposer16