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