RAPPAZ Francois wrote:

Hi

I'm stuck with a sequence of sql commands to duplicate a  record whithin the 
same table (server is 3.23.58):

I have table t1 with data : char and id: auto_increment, int, unsigned, primary 
key.
I would like to do the following

SET @template = 104;
DROP table IF EXISTS tmp; CREATE TABLE tmp SELECT data
FROM t1
WHERE [EMAIL PROTECTED];

INSERT INTO t1 (id, data)
SELECT null as id, tmp.data
FROM tmp;

And I always get 0 rows inserted.

By the way last_insert_id() gives something meaningfull: the id is incremented, 
but the other fields are left empty.

I there a way to get this working with that server version ?

Thanks for any help

François Rappaz



Works for me on 3.23.58-log.  Make sure @template is an id that exists.


[EMAIL PROTECTED] root]# mysql test
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1382731 to server version: 3.23.58-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE TABLE `t1` ( `id` int(11) NOT NULL auto_increment, `data` char(3) NOT NULL default '', PRIMARY KEY (`id`) );
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO t1 SELECT id, code AS data FROM VATtest.VAT_locations;
Query OK, 8 rows affected (0.00 sec)
Records: 8  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM t1;
+----+------+
| id | data |
+----+------+
|  1 | 1    |
|  2 | 2    |
|  3 | 3    |
|  4 | 40   |
|  5 | 50   |
|  6 | 51   |
|  7 | 60   |
|  8 | 99   |
+----+------+
8 rows in set (0.00 sec)

mysql> SET @template = 1;
Query OK, 0 rows affected (0.00 sec)

mysql> DROP table IF EXISTS tmp;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE TABLE tmp SELECT data FROM t1 WHERE [EMAIL PROTECTED];
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> INSERT INTO t1 (id, data) SELECT null as id, tmp.data FROM tmp;
Query OK, 1 row affected (0.00 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> SELECT * FROM t1;
+----+------+
| id | data |
+----+------+
|  1 | 1    |
|  2 | 2    |
|  3 | 3    |
|  4 | 40   |
|  5 | 50   |
|  6 | 51   |
|  7 | 60   |
|  8 | 99   |
|  9 | 1    |
+----+------+
9 rows in set (0.00 sec)




kgt





--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to