Cómo solucionar el error de MySQL #1005 – Can’t create table (errno: 121)

Ayer me apareció este error al tratar de ejecutar un DDL en una base de datos MySQL. El script estaba compuesto por varias sentencias de creación de tablas con primary keys, foreign keys e índices.

Este error aparece cuando estamos duplicando información de algún objeto de la base de datos en una sentencia CREATE TABLE . Una de las razones por la que se produce puede ser que la tabla ya exista en el diccionario de datos interno de la BBDD por algún proceso anterior y no se haya limpiado correctamente. Otro motivo, que es el que a mí me estaba provocando el error, es un conflicto de nombres entre foreign keys, ya que los nombres de éstas también deben de ser únicos en la BBDD, al igual que los nombres de las tablas, índices, vistas, etc.

La solución para mi caso, por tanto, es personalizar el nombre de cada Foreign Key. El ejemplo expuesto a continuación lo he tomado de mi script. Tenemos una tabla de hechos donde almacenamos la información de tiendas (t_tiendas) y dos tablas auxiliares donde vamos a guardar opiniones de cada tienda e imágenes de éstas (t_tiendas_img y t_tiendas_opn).  Estas dos tablas tienen como foreign key el id_tienda de la fact table y el error que cometí fue denominar a ambas con el mismo nombre. Para corregirlo, simplemente asignamos un nombre distinto a cada foreign key (id_tienda_img e id_tienda_opn).

CREATE  TABLE IF NOT EXISTS `t_tiendas_opn` (
`id_tienda` INT NOT NULL ,
`txt_opinion` MEDIUMTEXT NOT NULL ,
`valoracion` INT NOT NULL ,
PRIMARY KEY (`id_tienda`) ,
CONSTRAINT `id_tienda_opn`
FOREIGN KEY (`id_tienda` )
REFERENCES `t_tiendas` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)

CREATE  TABLE IF NOT EXISTS `t_tiendas_img` (
`id_tienda` INT NOT NULL ,
`path_img` VARCHAR(120) NOT NULL ,
PRIMARY KEY (`id_tienda`) ,
CONSTRAINT `id_tienda_img`
FOREIGN KEY (`id_tienda` )
REFERENCES `t_tiendas` (`id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)

20 Comentarios

Jigyasaa , certificaciones e-learning

Jigyasaa (Jig.yaa.saa) significa “curioso; interesado por aprender”. Bajo este nombre la empresa americana uCertify ha desarrollado un nuevo portal de e-learning interactivo tan intuitivo como un e-book junto a todo el potencial de un sistema de aprendizaje online. Heredando las funcionalidades y los recursos de su aplicación de escritorio, uCertify se ha sumado a la evolución de internet y ha creado una plataforma e-learning en la nube. Estudiantes y profesores pueden disfrutar de los beneficios de un “libro de texto online” en el que interactúan con videos, prácticas, tarjetas recordatorias, cuestionarios y juegos de preguntas, marcadores, notas, planning individualizado por cada estudiante, etc. Con acceso a toda la documentación, ejemplos y artículos relacionados, tanto el aprendizaje como el estudio se agilizan de forma considerable, al ritmo de cada uno en función de como se organice. Podemos estudiar un tema, tomar notas online, hacer varios cuestionarios y recordar lo más importante con las tarjetas “flash cards” que nos proponen.

Es una plataforma muy potente y flexible que ofrece numerosas herramientas de aprendizaje para todo tipo de estudiante. Los métodos de aprendizaje tradicionales basado en estudiar libros, apuntes y tarjetas resultan mucho menos productivos que analizar videos explicativos, leer y anotar en e-books online, cuestionarios prácticos totalmente personalizables, seguimiento del avance en la acepción de la materia, juegos y quizs, etc. Además, la nueva plataforma en la cloud se puede explotar desde dispositivos móviles iPhone, iPad y Android, de forma que se puede estudiar desde cualquier parte en cualquier momento. Desde 119$ podemos acceder a la preparación de certificaciones de Oracle, Microsoft (SQL SERVER, c#, etc), Cisco, Adobe, etc. Con la seguridad de que si no logramos aprobar la certificación, nos devuelven el dinero.

Para más información, podéis acceder directamente a su web: http://learn.jigyaasa.com

No se permite comentar sobre esta nota

Programa WebExpert de Google: aprende a utilizar y vender Google Adwords

Programa WebExpert de Google: aprende a utilizar y vender Google AdwordsEl servicio Google webexpert es un nuevo programa de Google dedicado a expertos web para ayudar a formarles en la utilización y venta de la herramienta Google Adwords. El nuevo servicio ofrecido por Google es totalmente gratuito y básicamente consiste en la formación e incentivación a profesionales de marketing online. Este programa puede ayudar a incrementar el negocio de agencias, webmasters y profesionales online mediante la formación en marketing SEM con las herramientas de Google (Adwords, Analytics, etc.)

La descripción propia que hace Google de su nuevo programa nos resume rápidamente en qué consiste WebExpert:

El objetivo del programa es ayudarte a entender el poder de AdWords, aprender sobre nuestro programa publicitario y poder vender a tus clientes actuales y potenciales una oferta integral de creación y promoción de su página Web; a través de formación y un servicio dedicado.

Entre otras cosas, las ventajas que nos ofrece el programa GoogleWebExpert son:

  • Formación gratuita mediante seminarios online sobre Google AdWords y otros productos para profesionales (Google Analytics, Google Display Network…)
  • Formación online para ser parte del Google Certified Partner, socios oficiales de Google.
  • Cupones promocionales para ofrecer la prueba gratuita a su clientes, por ejemplo, cupones de 50€ para que prueben Google Adwords.
  • Newsletter mínimo mensual con todas las novedades de Google.
  • Entradas para eventos periódicos de Google. El próximo 23 de Noviembre tendrá lugar el primer evento WebExpert. La cita será en el local de Cinesa de Fuencarral, aunque ya están agotadas todas las invitaciones.
  • Ayuda directa de Google para profesionales, para que puedan promocionar su negocio y conseguir nuevos clientes.
  • Participación en eventos exclusivos de Google para WebExpert.
  • Acceso a guías y documentación de la gestión, administración y venta de Google Adwords.

En principio el formulario de registro está enfocado a empresas, agencias o profesionales del sector, aunque podremos registrarnos sin mucho esfuerzo para tener acceso al material de Google WebExpert.

Una vez te hayas registrado irás recibiendo periódicamente información vía e-mail con acceso a la documentación online, con la que podrás aprender a gestionar y administrar Google Adwords y a cómo generar negocio con ella. En cuanto hayas recibido todo el material, podrás tener acceso al portal WebExpert, donde podrás encontrar información más actualizada y estar al tanto de las últimas novedades de Google Adwords.

En los próximos días sortearemos varios cupones de Google Adwords, por lo que estate atento a cualquier novedad.

Más info | http://www.google.es/adwords/webexpert/

3 Comentarios

Descarga Adobe Flash Builder 4 (FLEX 4) gratis

Descarga Adobe Flash Builder 4 (FLEX 4) gratis

Adobe Flash Builder, antes conocido como Macromedia FLEX, es la evolución oficial de las aplicaciones Flash programadas con ActionScript en forma de nueva tecnología apadrinada por Macromedia en su día, y por Adobe en la actualidad. Adobe Flash Builder es un entorno de desarrollo creado para correr sobre la plataforma Eclipse con el que podemos desarrollar RIAs (Rich Internet Applications) y, desde la incorporación de Adobe AIR en esta tecnología, también podremos desarrollar aplicaciones de escritorio multiplataforma.

Ahora puedes descargar de forma gratuita, y lo más importante, legal, Adobe Flash Builder 4. Para ello, debes cumplir alguno de estos requisitos:

  • Ser estudiante o desempeñar alguna función dentro de una institución educativa (profesores)
  • Desarrolladores de software que estén acusando gravemente la crisis y actualmente se encuentren en condición de desempleo.
  • En caso de participar en algún evento podrías recibir un código de activación especial.

Para poder tener acceso a nuestra copia gratuita tendremos que rellenar un formulario en el que debemos indicar nuestros datos personales, condiciones laborables, institución educativa en la que estamos matriculados si se diese el caso, y además, escanear cualquier documento que nos acredite en alguna de las tres opciones antes comentadas. Por ejemplo, si somos estudiantes, podríamos escanear la factura de la matrícula, o la nota de alguna asignatura con la fecha incluida; en caso de estar desempleados, podríamos escanear la cartilla del INEM (en España, Instituto Nacional de Empleo). Una vez enviado, podremos proceder a la descarga de Adobe Flash Builder 4.

Si estás interesado en aprender algo más sobre esta nueva tecnología, puedes echar un vistazo a los siguientes manuales:

Muy buena iniciativa por parte de Adobe, que se suma al carro de otras grandes empresas, como Microsoft, ofreciendo sus suites de desarrollo a usuarios en proceso de aprendizaje para que conozcan y se acostumbren a crear aplicaciones utilizando sus tecnologías, promoviendo y extendiendo de esta forma su uso en el futuro.

Más info | www.adobe.com/devnet-archive/flex/free/

2 Comentarios

Cómo instalar la base de datos de ejemplo AdventureWorks en SQL Server 2008 R2

Cómo instalar la base de datos de ejemplo en SQL Server 2008 R2

Desde hace años Microsoft ofrece de forma gratuita la descarga de su suite de aplicaciones de desarrollo para el entorno .NET, denominadas Express, ya que no ofrecen completamente todas las herramientas disponibles, para ello tendríamos que adquirir la versión Professional.

Con motivo de un curso sobre .NET he tenido que descargar e instalar Visual Studio 2010 Express para desarrollar aplicaciones de consola y Windows Forms, además,  uno de los módulos aborda la conexión a bases de datos y la gestión de estos  a través de SQL Server 2008 R2. Para todas las operaciones de los datos el tutor utiliza una base de datos de ejemplo que puede descargarse gratuitamente del MSDN: AdventureWorks.

Tras varios intentos, al final he logrado instalar correctamente la BBDD para poder utilizarla en los ejercicios propuestos. Por si en alguna ocasión os encontráis con este problema, os comento brevemente cómo resolverlo en unos pocos pasos.

En primer lugar, tenemos que instalar Microsoft SQL Server 2008 R2. Una vez instalado, es necesario hacer una instalación del gestor de la BBDD en nuestra máquina. Para ello, debemos ejecutar la aplicación SQL Server Installation Center, pulsar sobre la pestaña Installation y finalmente seleccionar la primera opción New Installation or add features to an existing installation. El proceso de instalación es sumamente sencillo, la única complicación con la que nos podemos encontrar es no tener iniciado el servicio SQL Server, que podemos activar desde el panel de control de Windows, o accediendo desde el menú de inicio en Microsoft SQL Server 2008 / Configuration Tools / SQL Server Configuration Manager.

Una vez terminado, descargamos e instalamos la database de ejemplo AdventureWorks. La instalación descomprime varios modelos de la BBDD en nuestra máquina:

C:\Archivos de programa\Microsoft SQL Server\100\Tools\Samples

La que nos interesa es AdventureWorks OLTP. Entramos en la carpeta que lleva este nombre y editamos el fichero instawdb.sql. Modificamos las líneas 34 y 35 quitando los comentarios y modificando los PATH de nuestra instalación de SQL Server 2008 R2 y la de los ejemplos. Sólo debes indicar la carpeta donde están todos los ejemplos (./samples/), no es necesario que especifiques el directorio de AdventureWorks OLTP, el propio script lo buscará.

:setvar SqlSamplesDatabasePath “C:\Archivos de programa\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\”

:setvar SqlSamplesSourceDataPath “C:\Archivos de programa\Microsoft SQL Server\100\Tools\Samples\”

Una vez modificado, copia en el portapapeles todo el script e inicia SQLCMD. Para ello, puedes hacerlo desde Inicio / Ejecutar escribiendo sqlcmd.exe. Se abrirá una consola donde simplemente tendrás que copiar el código (botón derecho / copiar). Cada instrucción DDL ó DML tiene asociada la instrucción GO, que ejecuta el código anterior, por lo que una vez termine el proceso en la consola, ya tendrás instalada la base de datos lista para operar con sus datos.

8 Comentarios

Cómo configurar un proyecto en Symfony con Netbeans 6.9

Estos días estoy trasteando con Symfony, uno de los frameworks de PHP con más éxito en la actualidad. Detrás de Symfony hay una comunidad muy activa que proporciona muchísima documentación sobre cómo utilizarlo, incluso tenemos a nuestra disposición el manual oficial traducido al castellano. Otra de las ventajas que ofrece Symfony es que ha sido probado y testado por muchos de sus usuarios, por lo que han podido resolver gran cantidad de errores de código.

Symfony se basa en el patrón MVC (Modelo Vista Controlador). La estructura lógica de nuestros proyectos se divide en Aplicaciones > Clases > Módulos, donde la Aplicación seria nuestro proyecto, las clases los tipos de funcionalidades de las que consta nuestra aplicación (gestión de usuarios, gestión de noticias, gestión de comentarios, etc.) y los módulos, que es donde se detalla cómo hacer cada funcionalidad de la clase a la que están asignados (alta, borrado y edición de usuarios, etc.).

Como cualquier framework, al principio cuesta conocer la sintaxis y la metodología para programar las operaciones, pero como todo es cuestión de práctica y experiencia, poco a poco se van adquiriendo los conocimientos suficientes como para poder realizar nuestros proyectos con soltura y lo más importante: con rapidez.

Si has decidido utilizar Symfony para tu proyecto web, habrás llegado a otra cuestión ¿qué programa o IDE utilizo?. Yo he elegido NetBeans 6.9 (la última versión hasta la fecha). NetBeans, además de ser opensource y totalmente gratuito, en su última versión nos ofrece un asistente para crear un proyecto PHP utilizando el Symfony e incluso tenemos a nuestra disposición una consola UNIX para configurarlo.

Configurar proyecto Symfony en NetBeans 6.9

  1. En primer lugar debemos tener un LAMP instalado en nuestro equipo.Yo utilizo XAMPP en Windows y MAMP en MAC OS X.
  2. Descargamos la última versión estable de Symfony desde su web.
  3. Descomprimimos el fichero descargado en el directorio de nuestra web. Debería quedar algo así.

    C:\dev\MiProyecto\symfony-1.4.6

  4. Abrimos NetBeans y creamos un nuevo proyecto PHP. Seguimos todos los pasos hasta el último, PHP Frameworks, donde seleccionaremos Symfony. Al seleccionarlo nos aparecerán varias opciones de configuración. Tendremos que pulsar sobre Options, a la derecha de la ventana.
  5. Cómo configurar un proyecto en Symfony con Netbeans 6.9

  6. Se nos abrirá el panel de configuración de PHP. En la pestaña de PHP indicaremos la ruta donde se encuentra el ejecutable de PHP del LAMP que hayamos instalado:

    C:\Archivos de programa\Xampp\xampp\php\php.exe

    Además, tendremos que indicar la ruta de instalación de Symfony pulsando el botón Add Folder, que será la carpeta que hemos descomprimido en el directorio de nuestro proyecto

    C:\dev\MiProyecto\symfony-1.4.6

  7. Cómo configurar un proyecto en Symfony con Netbeans 6.9

  8. En la pestaña Symfony tendremos que indicar la ruta del fichero binario del framework que se encuentra en:

    C:\dev\MiProyecto\symfony-1.4.6\data\bin\symfony

  9. Cómo configurar un proyecto en Symfony con Netbeans 6.9

  10. Le damos a Aceptar y antes de pulsarle en Terminar seleccionamos el checkbox de backend.
  11. Cómo configurar un proyecto en Symfony con Netbeans 6.9

  12. Ya tendremos configurado e instalado nuestro proyecto de Symfony en NetBeans.
24 Comentarios