Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 2 of 2 total
Thread CREATE TABLE ... AS SELECT
Mon, Jan 16 2012 5:10 AMPermanent Link

Abdulaziz Al-Jasser

Hi,

I am new to ElevateDB.  In fact I just bought it last week and I am trying to convert a huge DBISAM3 application to ElevateDB and came to face this "CREATE TABLE ... AS SELECT" statement and have questions:

1- Does it create indexes from Query Expression or only fields definitions?
2- What is the best way to create a RAM table from a physical table including the indexes?
Mon, Jan 16 2012 6:04 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Abdulaziz


1. CREATE TABLE AS will only create the base table - no indices - those have to be created by separate SQL statements after creation.

2. Look for the thread "Create a memory table" in the extensions newsgroup. It gives a script that will create an in-memory table from an sql statement and will create a single index. You should be able to modify it to create as many indices as you want.

A couple of general points:

a) the script component that runs the in-memory table creator must be pointing at the in-memory database
b) the sql has to be fully qualified with the on-disk database

You might also want to look at temporary tables. Similar to in-memory tables but on disk. Since they are created in the context of the on-disk database there's no need to qualify the sql with the database. The reason that I don't use them is they do get removed when the app shuts down normally but not in the event of a crash unlike in-memory tables which are totally self removing (at least after a reboot)

Roy Lambert [Team Elevate]
Image