[英]is there an easy/efficient way to make a mysql database dynamically 'build it's own structure' as it saves name/value pairs to disc?
是否有任何有效和簡單的方法來執行類似於以下的語句:
CREATE TABLE IF NOT EXISTS fubar ( id int, name varchar(80))
對於執行插入語句的列。
我以為它會復雜得多,但僅出於解釋的目的,我想我正在尋找類似的東西。
IF NOT EXISTS
(
SELECT * FROM information_schema.COLUMNS
WHERE
COLUMN_NAME='new_column' AND
TABLE_NAME='the_table' AND
TABLE_SCHEMA='the_schema'
)
THEN
ALTER TABLE `the_schema`.`the_table`
ADD COLUMN `new_column` bigint(20) unsigned NOT NULL default 1;
或者,有沒有辦法可以處理這個過程的python庫?
基本上,我希望“字典”的“ id”定義列,並在不存在的情況下創建它們。
我也希望數據庫保持合理的效率,所以我想有必要動態處理數據類型?
只是想知道目前是否存在這樣的事情,如果沒有尋求關於如何最好地實現它的建議....
我相信你正在尋找一個對象關系映射系統。
對於Python,有幾個可用的:
或者如果您正在建立一個網站,Django項目包括一個ORM系統: http : //www.djangoproject.com/
為了簡化過程,您可以在SQLAlchemy的頂部添加類似Elixir的內容: http : //elixir.ematia.de/trac/wiki
您將獲得如下代碼:
class Movie(Entity):
title = Field(Unicode(30))
year = Field(Integer)
description = Field(UnicodeText)
這是如何插入:
>>> Movie(title=u"Blade Runner", year=1982)
<Movie "Blade Runner" (1982)>
>>> session.commit()
或獲取結果:
>>> Movie.query.all()
[<Movie "Blade Runner" (1982)>]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.