SELECT IF

Thomas Goik - auxion.de technik at auxion.de
Mo Mär 30 13:57:54 CEST 2009


Hallo Uwe,

> TYPE NS ist mindestens 2 mal und MX kann X mal vorhanden sein
> 
> Domain.de NS ns1.domain_hoster.de
> Domain.de NS ns2.domain_hoster.de
> 
> Domain.de MX prio=10 mx1.domain_hoster.de
> Domain.de MX prio=20 mx.domain.de
> Domain.de MX prio=30 mail.domain2.com
> 
> 
ist es da nicht sinnvoller de CONTENT-Part nicht mit concat beim erstellen
zu schreiben sondern beim lesen, 
oder eben den DNS Eintrag als eigenen Wert mit angeben, dann könntest du
diesen mit dem UNIQUE KEY belegen und würdest dir das ganze sparen können?!

CREATE TABLE IF NOT EXISTS `records` (
   `id` int(11) NOT NULL auto_increment,
   `domain_id` int(11) default NULL,
   `name` varchar(255) default NULL,
   `type` varchar(6) default NULL,
++ `dns_url` varchar(255) default NULL
   `content` varchar(255) default NULL,
   `ttl` int(11) default NULL,
   `prio` int(11) default NULL,
   `change_date` int(11) default NULL,
   PRIMARY KEY  (`id`),
++ UNQIUE KEY `dns_url`(`dns_url`),
-- KEY `rec_name_index` (`name`),-- name hast du schon im unteren INDEX!!
  KEY `nametype_index` (`name`,`type`),
  KEY `domain_id` (`domain_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;


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: lunes, 30 de marzo de 2009 11:38
> Para: mysql-de at lists.4t2.com
> Asunto: RE: SELECT IF
> 
> On Behalf Of Thomas Goik - auxion.de
> >
> > 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);
> 
> Nein geht leider nicht
> 
> TYPE NS ist mindestens 2 mal und MX kann X mal vorhanden sein
> 
> Domain.de NS ns1.domain_hoster.de
> Domain.de NS ns2.domain_hoster.de
> 
> Domain.de MX prio=10 mx1.domain_hoster.de
> Domain.de MX prio=20 mx.domain.de
> Domain.de MX prio=30 mail.domain2.com
> 
> 
> >
> > 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!
> 
> Klar
> 
> -- Tabellenstruktur für Tabelle `domains`
> --
> 
> CREATE TABLE IF NOT EXISTS `domains` (
>   `id` int(11) NOT NULL auto_increment,
>   `name` varchar(255) NOT NULL,
>   `master` varchar(20) default NULL,
>   `last_check` int(11) default NULL,
>   `type` varchar(6) NOT NULL,
>   `notified_serial` int(11) default NULL,
>   `account` varchar(40) default NULL,
>   PRIMARY KEY  (`id`),
>   UNIQUE KEY `name_index` (`name`)
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
> 
> CREATE TABLE IF NOT EXISTS `records` (
>   `id` int(11) NOT NULL auto_increment,
>   `domain_id` int(11) default NULL,
>   `name` varchar(255) default NULL,
>   `type` varchar(6) default NULL,
>   `content` varchar(255) default NULL,
>   `ttl` int(11) default NULL,
>   `prio` int(11) default NULL,
>   `change_date` int(11) default NULL,
>   PRIMARY KEY  (`id`),
>   KEY `rec_name_index` (`name`),
>   KEY `nametype_index` (`name`,`type`),
>   KEY `domain_id` (`domain_id`)
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
> 
> 
> Sind die Standard Power-DNS Tabellen
> 
> >
> >
> > Mit freundlichen Grüssen
> > Thomas Goik
> >
> 
> 
> 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