簡體   English   中英

是否有一種簡單/有效的方法可以動態地構建一個mysql數據庫“構建它自己的結構”,因為它將名稱/值對保存到光盤?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM