自动从范围向表中插入值

时间:2010-01-16 01:46:54

标签: mysql

是否可以自动将值插入表中,即使用MySQL语句从30到200?

3 个答案:

答案 0 :(得分:4)

我不知道使用SQL语句创建范围,但您可以使用http://www.generatedata.com/快速生成一组数据并运行查询以将其全部插入到数据库中。

您可以让它以SQL格式输出数据,这样您就可以复制&粘贴到用于与数据库交互的任何内容中。 (在我的情况下是phpMyAdmin)

答案 1 :(得分:4)

这是一个应该执行此操作的存储过程:

CREATE PROCEDURE insert_range()
BEGIN
  DECLARE i INT DEFAULT 30;
  WHILE i <= 200 DO
    INSERT my_table (col_with_range) VALUES (i);
    SET i = i + 1;
  END WHILE;
END

答案 2 :(得分:1)

在使用编程语言提供帮助时,我发现批量插入任务更易于管理。

例如,Python可以在几行中完成您想要的任务:

>>> import MySQLdb # import the MySQLdb module
>>> conn = MySQLdb.connect(passwd='mypassword', db='mydb', user='myusername')

>>> mylist = [(i,'abc') for i in range(30,201)] # create list w/ values to insert

>>> curs = conn.cursor()
>>> curs.executemany('''INSERT INTO mytable 
...   (col_with_range, val) VALUES (%s, %s)''', mylist)
171L

你已经完成了:

>>> curs.execute('SELECT col_with_range, val FROM mytable')
171L
>>> curs.fetchall()
(('30', 'abc'), ('31', 'abc'), ('32', 'abc'), ('33', 'abc'), etc., etc., etc.
>>> curs.close()
>>> conn.close()