SELECT IF
Thomas Goik - auxion.de
technik at auxion.de
Mo Mär 30 11:04:49 CEST 2009
Hallo Uwe,
Sorry, aber ist es nicht ausreichend das du ein UNIQUE auf name, type legst
und dann nur gegen die gegen prüfst, da diese ja immer unique sind.
Alter table Records add unique key (name, type);
INSERT INTO pdns.records
(id, domain_id, name, type, content, ttl, prio, change_date)
SELECT NULL, t1.id, 'abi-1992.net', 'SOA', concat(
'ns1.deltaweb.de.
hostmaster.deltaweb.de.', CURDATE( ) +0, '00 86400 7200 604800 1800' ) ,
21600, 0, Unix_timestamp( ) FROM pdns.domains t1 where t1.name
='abi-1992.net'
ON DUPLICATE KEY UPDATE content = concat(
'ns1.deltaweb.de.hostmaster.deltaweb.de.', CURDATE( ) +0, '00 86400 7200
604800 1800' );
Sorry, aber kannst du mal die Create tables ausgeben, Danke!
Mit freundlichen Grüssen
Thomas Goik
--
Lofox GmbH
Geschäftsführerin: Evelyn Fuchs
Im Kamperholz 48
44805 Bochum - Germany
Amtsgericht Bochum HRB 7042
USt-IdNr.: DE215698227
St.-Nr. Bochum 306/5885/0172
> -----Mensaje original-----
> De: mysql-de-bounces at lists.4t2.com [mailto:mysql-de-
> bounces at lists.4t2.com] En nombre de Uwe Driessen
> Enviado el: domingo, 29 de marzo de 2009 13:47
> Para: 'Hannes Streicher'; mysql-de at lists.4t2.com
> Asunto: RE: SELECT IF
>
> On Behalf Of Hannes Streicher
> > am Samstag, 28. März 2009 um 23:33 schrieben Sie:
> >
> >
> > > Beide Varianten funktionieren leider nur wenn alle Felder eindeutig
> sind
> >
> > dann wuesste ich nur eine loesung mit 2 statements
> >
>
> Zu der Erkenntnis komme ich auch langsam. Wäre schön gewesen wenn ich
> das hätte mit einem
> Statement machen können.
>
> Ich versuche es nun wie folgt zu lösen
>
> SELECT @tempid := IF(
> (SELECT t2.id FROM pdns.records t2 WHERE t2.name = 'abi-1992.net'
> AND TYPE =
> 'SOA')>0,
> (SELECT t2.id FROM pdns.records t2 WHERE t2.name = 'abi-1992.net'
> AND TYPE =
> 'SOA'),
> 'NULL');
> REPLACE INTO pdns.records(id, domain_id, name, type, content, ttl,
> prio, change_date)
> SELECT @tempid, t1.id, 'abi-1992.net', 'SOA', concat(
> 'ns1.deltaweb.de.
> hostmaster.deltaweb.de.', CURDATE( ) +0, '00 86400 7200 604800 1800' )
> , 21600, 0,
> Unix_timestamp( )
> FROM pdns.domains t1 where t1.name ='abi-1992.net' ;
>
> Wobei hier auch ein insert... update on duplicate key gehen müsste das
> würde die ID's
> nicht erhöhen
>
> Also
>
> SELECT @tempid := IF(
> (SELECT t2.id FROM pdns.records t2 WHERE t2.name = 'abi-1992.net'
> AND TYPE =
> 'SOA')>0,
> (SELECT t2.id FROM pdns.records t2 WHERE t2.name = 'abi-1992.net'
> AND TYPE =
> 'SOA'),
> 'NULL');
> INSERT INTO pdns.records(id, domain_id, name, type, content, ttl, prio,
> change_date)
> SELECT @tempid, t1.id, 'abi-1992.net', 'SOA', concat(
> 'ns1.deltaweb.de.
> hostmaster.deltaweb.de.', CURDATE( ) +0, '00 86400 7200 604800 1800' )
> , 21600, 0,
> Unix_timestamp( )
> FROM pdns.domains t1 where t1.name ='abi-1992.net' ON DUPLICATE KEY
> UPDATE name =
> 'abi-1992.net', domain_id = t1.id, type = 'SOA',
> change_date = concat('ns1.deltaweb.de.
> hostmaster.deltaweb.de.',CURDATE() + 0,'00 86400
> 7200 604800 1800'),
> ttl= 21600,
> prio=0,
> change_date = Unix_timestamp() ;
>
>
> evtl. hat ja noch jemand eine Idee wie das mit einem Statement oder
> kürzer geht.
>
> Mit freundlichen Grüßen
>
> Drießen
>
> --
> Software & Computer
> Uwe Drießen
> Lembergstraße 33
> 67824 Feilbingert
> Tel.: +49 06708 / 660045 Fax: +49 06708 / 661397
>
>
> _______________________________________________
> Allgemeine Infos zur Liste: http://www.4t2.com/mysql/
> Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de